KILLED proof of input_vDL5M4EO1A.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (4) CpxTRS (5) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxWeightedTrs (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxTypedWeightedTrs (9) CompletionProof [UPPER BOUND(ID), 0 ms] (10) CpxTypedWeightedCompleteTrs (11) NarrowingProof [BOTH BOUNDS(ID, ID), 329 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 17 ms] (14) CpxRNTS (15) InliningProof [UPPER BOUND(ID), 656 ms] (16) CpxRNTS (17) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (18) CpxRNTS (19) CompletionProof [UPPER BOUND(ID), 0 ms] (20) CpxTypedWeightedCompleteTrs (21) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (22) CpxRNTS (23) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (24) CdtProblem (25) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (26) CdtProblem (27) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (28) CdtProblem (29) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (30) CdtProblem (31) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (32) CdtProblem (33) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 9 ms] (34) CdtProblem (35) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CdtProblem (37) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (38) CdtProblem (39) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (40) CdtProblem (41) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 3 ms] (42) CdtProblem (43) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CdtProblem (45) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CdtProblem (47) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CdtProblem (49) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (50) CdtProblem (51) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (52) CdtProblem (53) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (54) CdtProblem (55) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CdtProblem (59) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CdtProblem (63) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CdtProblem (65) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 9 ms] (70) CdtProblem (71) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (74) CdtProblem (75) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (76) CdtProblem (77) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CdtProblem (79) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 10 ms] (80) CdtProblem (81) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (82) CdtProblem (83) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 44 ms] (86) CdtProblem (87) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 4 ms] (88) CdtProblem (89) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 17 ms] (90) CdtProblem (91) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (94) CdtProblem (95) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 49 ms] (96) CdtProblem (97) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (98) CdtProblem (99) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (100) CdtProblem (101) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 80 ms] (102) CdtProblem (103) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (104) CdtProblem (105) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 64 ms] (106) CdtProblem (107) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (110) CdtProblem (111) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 26 ms] (112) CdtProblem (113) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 14 ms] (114) CdtProblem (115) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 13 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 28 ms] (126) CdtProblem (127) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (128) CdtProblem (129) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (130) CdtProblem (131) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (136) CdtProblem (137) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (138) CdtProblem (139) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (140) CdtProblem (141) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 16 ms] (144) CdtProblem (145) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 1 ms] (146) CdtProblem (147) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (154) CdtProblem (155) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 39 ms] (156) CdtProblem (157) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (158) CdtProblem (159) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 25 ms] (160) CdtProblem (161) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 44 ms] (162) CdtProblem (163) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (164) CdtProblem (165) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 43 ms] (166) CdtProblem (167) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (168) CdtProblem (169) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 26 ms] (170) CdtProblem (171) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (172) CdtProblem (173) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 11 ms] (174) CdtProblem (175) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (176) CdtProblem (177) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 30 ms] (178) CdtProblem (179) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (180) CdtProblem (181) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 26 ms] (182) CdtProblem (183) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (184) CdtProblem (185) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (186) CdtProblem (187) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (188) CdtProblem (189) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 39 ms] (190) CdtProblem (191) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (192) CdtProblem (193) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 30 ms] (194) CdtProblem (195) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 17 ms] (196) CdtProblem (197) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (198) CdtProblem (199) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 40 ms] (200) CdtProblem (201) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (202) CdtProblem (203) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 48 ms] (204) CdtProblem (205) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (206) CdtProblem ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) a__isNatIList(IL) -> a__isNatList(IL) a__isNat(0) -> tt a__isNat(s(N)) -> a__isNat(N) a__isNat(length(L)) -> a__isNatList(L) a__isNatIList(zeros) -> tt a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__isNatList(nil) -> tt a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__zeros -> cons(0, zeros) a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) a__uTake1(tt) -> nil a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) a__uLength(tt, L) -> s(a__length(mark(L))) mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(zeros) -> a__zeros mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(uTake1(X)) -> a__uTake1(mark(X)) mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) mark(tt) -> tt mark(0) -> 0 mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(nil) -> nil a__and(X1, X2) -> and(X1, X2) a__isNatIList(X) -> isNatIList(X) a__isNatList(X) -> isNatList(X) a__isNat(X) -> isNat(X) a__length(X) -> length(X) a__zeros -> zeros a__take(X1, X2) -> take(X1, X2) a__uTake1(X) -> uTake1(X) a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) a__uLength(X1, X2) -> uLength(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) a__isNatIList(IL) -> a__isNatList(IL) a__isNat(0') -> tt a__isNat(s(N)) -> a__isNat(N) a__isNat(length(L)) -> a__isNatList(L) a__isNatIList(zeros) -> tt a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__isNatList(nil) -> tt a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__zeros -> cons(0', zeros) a__take(0', IL) -> a__uTake1(a__isNatIList(IL)) a__uTake1(tt) -> nil a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) a__uLength(tt, L) -> s(a__length(mark(L))) mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(zeros) -> a__zeros mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(uTake1(X)) -> a__uTake1(mark(X)) mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) mark(tt) -> tt mark(0') -> 0' mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(nil) -> nil a__and(X1, X2) -> and(X1, X2) a__isNatIList(X) -> isNatIList(X) a__isNatList(X) -> isNatList(X) a__isNat(X) -> isNat(X) a__length(X) -> length(X) a__zeros -> zeros a__take(X1, X2) -> take(X1, X2) a__uTake1(X) -> uTake1(X) a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) a__uLength(X1, X2) -> uLength(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (4) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) a__isNatIList(IL) -> a__isNatList(IL) a__isNat(0) -> tt a__isNat(s(N)) -> a__isNat(N) a__isNat(length(L)) -> a__isNatList(L) a__isNatIList(zeros) -> tt a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__isNatList(nil) -> tt a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) a__zeros -> cons(0, zeros) a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) a__uTake1(tt) -> nil a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) a__uLength(tt, L) -> s(a__length(mark(L))) mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(zeros) -> a__zeros mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(uTake1(X)) -> a__uTake1(mark(X)) mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) mark(tt) -> tt mark(0) -> 0 mark(s(X)) -> s(mark(X)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(nil) -> nil a__and(X1, X2) -> and(X1, X2) a__isNatIList(X) -> isNatIList(X) a__isNatList(X) -> isNatList(X) a__isNat(X) -> isNat(X) a__length(X) -> length(X) a__zeros -> zeros a__take(X1, X2) -> take(X1, X2) a__uTake1(X) -> uTake1(X) a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) a__uLength(X1, X2) -> uLength(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (9) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: mark_1 a__isNat_1 a__isNatIList_1 a__and_2 a__isNatList_1 a__uLength_2 a__uTake1_1 a__length_1 a__uTake2_4 a__take_2 a__zeros Due to the following rules being added: none And the following fresh constants: none ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (11) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(0, IL)) -> a__and(tt, a__isNatList(IL)) [3] a__isNatIList(cons(0, zeros)) -> a__and(tt, tt) [3] a__isNatIList(cons(0, cons(N'', IL'))) -> a__and(tt, a__and(a__isNat(N''), a__isNatIList(IL'))) [3] a__isNatIList(cons(0, IL)) -> a__and(tt, isNatIList(IL)) [3] a__isNatIList(cons(s(N'), IL)) -> a__and(a__isNat(N'), a__isNatList(IL)) [3] a__isNatIList(cons(s(N'), zeros)) -> a__and(a__isNat(N'), tt) [3] a__isNatIList(cons(s(N'), cons(N1, IL''))) -> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) [3] a__isNatIList(cons(s(N'), IL)) -> a__and(a__isNat(N'), isNatIList(IL)) [3] a__isNatIList(cons(length(L'), IL)) -> a__and(a__isNatList(L'), a__isNatList(IL)) [3] a__isNatIList(cons(length(L'), zeros)) -> a__and(a__isNatList(L'), tt) [3] a__isNatIList(cons(length(L'), cons(N2, IL1))) -> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) [3] a__isNatIList(cons(length(L'), IL)) -> a__and(a__isNatList(L'), isNatIList(IL)) [3] a__isNatIList(cons(N, IL)) -> a__and(isNat(N), a__isNatList(IL)) [3] a__isNatIList(cons(N, zeros)) -> a__and(isNat(N), tt) [3] a__isNatIList(cons(N, cons(N3, IL2))) -> a__and(isNat(N), a__and(a__isNat(N3), a__isNatIList(IL2))) [3] a__isNatIList(cons(N, IL)) -> a__and(isNat(N), isNatIList(IL)) [3] a__isNatList(nil) -> tt [1] a__isNatList(cons(0, nil)) -> a__and(tt, tt) [3] a__isNatList(cons(0, cons(N5, L1))) -> a__and(tt, a__and(a__isNat(N5), a__isNatList(L1))) [3] a__isNatList(cons(0, take(N6, IL3))) -> a__and(tt, a__and(a__isNat(N6), a__isNatIList(IL3))) [3] a__isNatList(cons(0, L)) -> a__and(tt, isNatList(L)) [3] a__isNatList(cons(s(N4), nil)) -> a__and(a__isNat(N4), tt) [3] a__isNatList(cons(s(N4), cons(N7, L2))) -> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) [3] a__isNatList(cons(s(N4), take(N8, IL4))) -> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) [3] a__isNatList(cons(s(N4), L)) -> a__and(a__isNat(N4), isNatList(L)) [3] a__isNatList(cons(length(L''), nil)) -> a__and(a__isNatList(L''), tt) [3] a__isNatList(cons(length(L''), cons(N9, L3))) -> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) [3] a__isNatList(cons(length(L''), take(N10, IL5))) -> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) [3] a__isNatList(cons(length(L''), L)) -> a__and(a__isNatList(L''), isNatList(L)) [3] a__isNatList(cons(N, nil)) -> a__and(isNat(N), tt) [3] a__isNatList(cons(N, cons(N11, L4))) -> a__and(isNat(N), a__and(a__isNat(N11), a__isNatList(L4))) [3] a__isNatList(cons(N, take(N12, IL6))) -> a__and(isNat(N), a__and(a__isNat(N12), a__isNatIList(IL6))) [3] a__isNatList(cons(N, L)) -> a__and(isNat(N), isNatList(L)) [3] a__isNatList(take(0, IL)) -> a__and(tt, a__isNatList(IL)) [3] a__isNatList(take(0, zeros)) -> a__and(tt, tt) [3] a__isNatList(take(0, cons(N14, IL7))) -> a__and(tt, a__and(a__isNat(N14), a__isNatIList(IL7))) [3] a__isNatList(take(0, IL)) -> a__and(tt, isNatIList(IL)) [3] a__isNatList(take(s(N13), IL)) -> a__and(a__isNat(N13), a__isNatList(IL)) [3] a__isNatList(take(s(N13), zeros)) -> a__and(a__isNat(N13), tt) [3] a__isNatList(take(s(N13), cons(N15, IL8))) -> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) [3] a__isNatList(take(s(N13), IL)) -> a__and(a__isNat(N13), isNatIList(IL)) [3] a__isNatList(take(length(L5), IL)) -> a__and(a__isNatList(L5), a__isNatList(IL)) [3] a__isNatList(take(length(L5), zeros)) -> a__and(a__isNatList(L5), tt) [3] a__isNatList(take(length(L5), cons(N16, IL9))) -> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) [3] a__isNatList(take(length(L5), IL)) -> a__and(a__isNatList(L5), isNatIList(IL)) [3] a__isNatList(take(N, IL)) -> a__and(isNat(N), a__isNatList(IL)) [3] a__isNatList(take(N, zeros)) -> a__and(isNat(N), tt) [3] a__isNatList(take(N, cons(N17, IL10))) -> a__and(isNat(N), a__and(a__isNat(N17), a__isNatIList(IL10))) [3] a__isNatList(take(N, IL)) -> a__and(isNat(N), isNatIList(IL)) [3] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatList(IL)) [2] a__take(0, zeros) -> a__uTake1(tt) [2] a__take(0, cons(N18, IL11)) -> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) [2] a__take(0, IL) -> a__uTake1(isNatIList(IL)) [2] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(0, nil)) -> a__uLength(a__and(tt, tt), nil) [3] a__length(cons(0, cons(N41, L12))) -> a__uLength(a__and(tt, a__and(a__isNat(N41), a__isNatList(L12))), cons(N41, L12)) [3] a__length(cons(0, take(N42, IL28))) -> a__uLength(a__and(tt, a__and(a__isNat(N42), a__isNatIList(IL28))), take(N42, IL28)) [3] a__length(cons(0, L)) -> a__uLength(a__and(tt, isNatList(L)), L) [3] a__length(cons(s(N40), nil)) -> a__uLength(a__and(a__isNat(N40), tt), nil) [3] a__length(cons(s(N40), cons(N43, L13))) -> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), cons(N43, L13)) [3] a__length(cons(s(N40), take(N44, IL29))) -> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), take(N44, IL29)) [3] a__length(cons(s(N40), L)) -> a__uLength(a__and(a__isNat(N40), isNatList(L)), L) [3] a__length(cons(length(L11), nil)) -> a__uLength(a__and(a__isNatList(L11), tt), nil) [3] a__length(cons(length(L11), cons(N45, L14))) -> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), cons(N45, L14)) [3] a__length(cons(length(L11), take(N46, IL30))) -> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), take(N46, IL30)) [3] a__length(cons(length(L11), L)) -> a__uLength(a__and(a__isNatList(L11), isNatList(L)), L) [3] a__length(cons(N, nil)) -> a__uLength(a__and(isNat(N), tt), nil) [3] a__length(cons(N, cons(N47, L15))) -> a__uLength(a__and(isNat(N), a__and(a__isNat(N47), a__isNatList(L15))), cons(N47, L15)) [3] a__length(cons(N, take(N48, IL31))) -> a__uLength(a__and(isNat(N), a__and(a__isNat(N48), a__isNatIList(IL31))), take(N48, IL31)) [3] a__length(cons(N, L)) -> a__uLength(a__and(isNat(N), isNatList(L)), L) [3] a__uLength(tt, and(X1', X2')) -> s(a__length(a__and(mark(X1'), mark(X2')))) [2] a__uLength(tt, isNatIList(X')) -> s(a__length(a__isNatIList(X'))) [2] a__uLength(tt, isNatList(X'')) -> s(a__length(a__isNatList(X''))) [2] a__uLength(tt, isNat(X5)) -> s(a__length(a__isNat(X5))) [2] a__uLength(tt, length(X6)) -> s(a__length(a__length(mark(X6)))) [2] a__uLength(tt, zeros) -> s(a__length(a__zeros)) [2] a__uLength(tt, take(X1'', X2'')) -> s(a__length(a__take(mark(X1''), mark(X2'')))) [2] a__uLength(tt, uTake1(X7)) -> s(a__length(a__uTake1(mark(X7)))) [2] a__uLength(tt, uTake2(X11, X21, X3', X4')) -> s(a__length(a__uTake2(mark(X11), X21, X3', X4'))) [2] a__uLength(tt, uLength(X12, X22)) -> s(a__length(a__uLength(mark(X12), X22))) [2] a__uLength(tt, tt) -> s(a__length(tt)) [2] a__uLength(tt, 0) -> s(a__length(0)) [2] a__uLength(tt, s(X8)) -> s(a__length(s(mark(X8)))) [2] a__uLength(tt, cons(X13, X23)) -> s(a__length(cons(mark(X13), X23))) [2] a__uLength(tt, nil) -> s(a__length(nil)) [2] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(and(X1100, X284))) -> a__length(a__and(mark(X1100), mark(X284))) [2] mark(length(isNatIList(X200))) -> a__length(a__isNatIList(X200)) [2] mark(length(isNatList(X201))) -> a__length(a__isNatList(X201)) [2] mark(length(isNat(X202))) -> a__length(a__isNat(X202)) [2] mark(length(length(X203))) -> a__length(a__length(mark(X203))) [2] mark(length(zeros)) -> a__length(a__zeros) [2] mark(length(take(X1101, X285))) -> a__length(a__take(mark(X1101), mark(X285))) [2] mark(length(uTake1(X204))) -> a__length(a__uTake1(mark(X204))) [2] mark(length(uTake2(X1102, X286, X324, X423))) -> a__length(a__uTake2(mark(X1102), X286, X324, X423)) [2] mark(length(uLength(X1103, X287))) -> a__length(a__uLength(mark(X1103), X287)) [2] mark(length(tt)) -> a__length(tt) [2] mark(length(0)) -> a__length(0) [2] mark(length(s(X205))) -> a__length(s(mark(X205))) [2] mark(length(cons(X1104, X288))) -> a__length(cons(mark(X1104), X288)) [2] mark(length(nil)) -> a__length(nil) [2] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(and(X1185, X2174))) -> a__uTake1(a__and(mark(X1185), mark(X2174))) [2] mark(uTake1(isNatIList(X445))) -> a__uTake1(a__isNatIList(X445)) [2] mark(uTake1(isNatList(X446))) -> a__uTake1(a__isNatList(X446)) [2] mark(uTake1(isNat(X447))) -> a__uTake1(a__isNat(X447)) [2] mark(uTake1(length(X448))) -> a__uTake1(a__length(mark(X448))) [2] mark(uTake1(zeros)) -> a__uTake1(a__zeros) [2] mark(uTake1(take(X1186, X2175))) -> a__uTake1(a__take(mark(X1186), mark(X2175))) [2] mark(uTake1(uTake1(X449))) -> a__uTake1(a__uTake1(mark(X449))) [2] mark(uTake1(uTake2(X1187, X2176, X3103, X450))) -> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) [2] mark(uTake1(uLength(X1188, X2177))) -> a__uTake1(a__uLength(mark(X1188), X2177)) [2] mark(uTake1(tt)) -> a__uTake1(tt) [2] mark(uTake1(0)) -> a__uTake1(0) [2] mark(uTake1(s(X451))) -> a__uTake1(s(mark(X451))) [2] mark(uTake1(cons(X1189, X2178))) -> a__uTake1(cons(mark(X1189), X2178)) [2] mark(uTake1(nil)) -> a__uTake1(nil) [2] mark(uTake2(and(X1190, X2179), X2, X3, X4)) -> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) [2] mark(uTake2(isNatIList(X452), X2, X3, X4)) -> a__uTake2(a__isNatIList(X452), X2, X3, X4) [2] mark(uTake2(isNatList(X453), X2, X3, X4)) -> a__uTake2(a__isNatList(X453), X2, X3, X4) [2] mark(uTake2(isNat(X454), X2, X3, X4)) -> a__uTake2(a__isNat(X454), X2, X3, X4) [2] mark(uTake2(length(X455), X2, X3, X4)) -> a__uTake2(a__length(mark(X455)), X2, X3, X4) [2] mark(uTake2(zeros, X2, X3, X4)) -> a__uTake2(a__zeros, X2, X3, X4) [2] mark(uTake2(take(X1191, X2180), X2, X3, X4)) -> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) [2] mark(uTake2(uTake1(X456), X2, X3, X4)) -> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) [2] mark(uTake2(uTake2(X1192, X2181, X3104, X457), X2, X3, X4)) -> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) [2] mark(uTake2(uLength(X1193, X2182), X2, X3, X4)) -> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) [2] mark(uTake2(tt, X2, X3, X4)) -> a__uTake2(tt, X2, X3, X4) [2] mark(uTake2(0, X2, X3, X4)) -> a__uTake2(0, X2, X3, X4) [2] mark(uTake2(s(X458), X2, X3, X4)) -> a__uTake2(s(mark(X458)), X2, X3, X4) [2] mark(uTake2(cons(X1194, X2183), X2, X3, X4)) -> a__uTake2(cons(mark(X1194), X2183), X2, X3, X4) [2] mark(uTake2(nil, X2, X3, X4)) -> a__uTake2(nil, X2, X3, X4) [2] mark(uLength(and(X1195, X2184), X2)) -> a__uLength(a__and(mark(X1195), mark(X2184)), X2) [2] mark(uLength(isNatIList(X459), X2)) -> a__uLength(a__isNatIList(X459), X2) [2] mark(uLength(isNatList(X460), X2)) -> a__uLength(a__isNatList(X460), X2) [2] mark(uLength(isNat(X461), X2)) -> a__uLength(a__isNat(X461), X2) [2] mark(uLength(length(X462), X2)) -> a__uLength(a__length(mark(X462)), X2) [2] mark(uLength(zeros, X2)) -> a__uLength(a__zeros, X2) [2] mark(uLength(take(X1196, X2185), X2)) -> a__uLength(a__take(mark(X1196), mark(X2185)), X2) [2] mark(uLength(uTake1(X463), X2)) -> a__uLength(a__uTake1(mark(X463)), X2) [2] mark(uLength(uTake2(X1197, X2186, X3105, X464), X2)) -> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) [2] mark(uLength(uLength(X1198, X2187), X2)) -> a__uLength(a__uLength(mark(X1198), X2187), X2) [2] mark(uLength(tt, X2)) -> a__uLength(tt, X2) [2] mark(uLength(0, X2)) -> a__uLength(0, X2) [2] mark(uLength(s(X465), X2)) -> a__uLength(s(mark(X465)), X2) [2] mark(uLength(cons(X1199, X2188), X2)) -> a__uLength(cons(mark(X1199), X2188), X2) [2] mark(uLength(nil, X2)) -> a__uLength(nil, X2) [2] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 zeros => 3 nil => 1 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(T) :|: z = 2, z' = T, T >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(L) :|: z = 1 + L, L >= 0 a__isNat(z) -{ 1 }-> a__isNat(N) :|: z = 1 + N, N >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(IL) :|: z = IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__isNatList(IL)) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) :|: L' >= 0, IL1 >= 0, z = 1 + (1 + L') + (1 + N2 + IL1), N2 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 2) :|: L' >= 0, z = 1 + (1 + L') + 3 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 1 + IL) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__isNatList(IL)) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) :|: IL'' >= 0, N1 >= 0, z = 1 + (1 + N') + (1 + N1 + IL''), N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 2) :|: z = 1 + (1 + N') + 3, N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 1 + IL) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N''), a__isNatIList(IL'))) :|: IL' >= 0, z = 1 + 0 + (1 + N'' + IL'), N'' >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatIList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N3), a__isNatIList(IL2))) :|: IL2 >= 0, N3 >= 0, z = 1 + N + (1 + N3 + IL2), N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) :|: L'' >= 0, z = 1 + (1 + L'') + (1 + N10 + IL5), N10 >= 0, IL5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) :|: L3 >= 0, z = 1 + (1 + L'') + (1 + N9 + L3), N9 >= 0, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 2) :|: z = 1 + (1 + L'') + 1, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 1 + L) :|: z = 1 + (1 + L'') + L, L'' >= 0, L >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__isNatList(IL)) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) :|: IL9 >= 0, L5 >= 0, N16 >= 0, z = 1 + (1 + L5) + (1 + N16 + IL9) a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 2) :|: L5 >= 0, z = 1 + (1 + L5) + 3 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 1 + IL) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__isNatList(IL)) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) :|: N15 >= 0, z = 1 + (1 + N13) + (1 + N15 + IL8), IL8 >= 0, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 2) :|: z = 1 + (1 + N13) + 3, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 1 + IL) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) :|: z = 1 + (1 + N4) + (1 + N7 + L2), N7 >= 0, L2 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) :|: z = 1 + (1 + N4) + (1 + N8 + IL4), N8 >= 0, IL4 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 2) :|: z = 1 + (1 + N4) + 1, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 1 + L) :|: z = 1 + (1 + N4) + L, L >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N14), a__isNatIList(IL7))) :|: IL7 >= 0, N14 >= 0, z = 1 + 0 + (1 + N14 + IL7) a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N5), a__isNatList(L1))) :|: z = 1 + 0 + (1 + N5 + L1), L1 >= 0, N5 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N6), a__isNatIList(IL3))) :|: IL3 >= 0, z = 1 + 0 + (1 + N6 + IL3), N6 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 1 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 1 + L) :|: z = 1 + 0 + L, L >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N11), a__isNatList(L4))) :|: N11 >= 0, z = 1 + N + (1 + N11 + L4), N >= 0, L4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N12), a__isNatIList(IL6))) :|: z = 1 + N + (1 + N12 + IL6), N12 >= 0, IL6 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N17), a__isNatIList(IL10))) :|: z = 1 + N + (1 + N17 + IL10), IL10 >= 0, N17 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 1, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + L) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), 1 + N45 + L14) :|: z = 1 + (1 + L11) + (1 + N45 + L14), N45 >= 0, L11 >= 0, L14 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), 1 + N46 + IL30) :|: N46 >= 0, IL30 >= 0, L11 >= 0, z = 1 + (1 + L11) + (1 + N46 + IL30) a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 2), 1) :|: z = 1 + (1 + L11) + 1, L11 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 1 + L), L) :|: z = 1 + (1 + L11) + L, L11 >= 0, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), 1 + N43 + L13) :|: L13 >= 0, N43 >= 0, z = 1 + (1 + N40) + (1 + N43 + L13), N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), 1 + N44 + IL29) :|: IL29 >= 0, z = 1 + (1 + N40) + (1 + N44 + IL29), N44 >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 2), 1) :|: z = 1 + (1 + N40) + 1, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 1 + L), L) :|: z = 1 + (1 + N40) + L, L >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N41), a__isNatList(L12))), 1 + N41 + L12) :|: z = 1 + 0 + (1 + N41 + L12), L12 >= 0, N41 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N42), a__isNatIList(IL28))), 1 + N42 + IL28) :|: N42 >= 0, IL28 >= 0, z = 1 + 0 + (1 + N42 + IL28) a__length(z) -{ 3 }-> a__uLength(a__and(2, 2), 1) :|: z = 1 + 0 + 1 a__length(z) -{ 3 }-> a__uLength(a__and(2, 1 + L), L) :|: z = 1 + 0 + L, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N47), a__isNatList(L15))), 1 + N47 + L15) :|: z = 1 + N + (1 + N47 + L15), L15 >= 0, N47 >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N48), a__isNatIList(IL31))), 1 + N48 + IL31) :|: IL31 >= 0, N48 >= 0, z = 1 + N + (1 + N48 + IL31), N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 2), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 1 + L), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__isNatList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) :|: IL11 >= 0, z' = 1 + N18 + IL11, z = 0, N18 >= 0 a__take(z, z') -{ 2 }-> a__uTake1(2) :|: z' = 3, z = 0 a__take(z, z') -{ 2 }-> a__uTake1(1 + IL) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__zeros) :|: z = 2, z' = 3 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake2(mark(X11), X21, X3', X4')) :|: z = 2, X3' >= 0, X4' >= 0, X11 >= 0, X21 >= 0, z' = 1 + X11 + X21 + X3' + X4' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake1(mark(X7))) :|: z = 2, X7 >= 0, z' = 1 + X7 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uLength(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X1''), mark(X2''))) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X6))) :|: z = 2, X6 >= 0, z' = 1 + X6 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X'')) :|: z = 2, z' = 1 + X'', X'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X')) :|: z = 2, X' >= 0, z' = 1 + X' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNat(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1'), mark(X2'))) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__uLength(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__uLength(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X8)) :|: z = 2, X8 >= 0, z' = 1 + X8 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__uLength(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z' = M, z1 = IL, z'' = N, M >= 0, IL >= 0, N >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 mark(z) -{ 2 }-> a__uTake2(a__zeros, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) :|: z = 1 + (1 + X1192 + X2181 + X3104 + X457) + X2 + X3 + X4, X457 >= 0, X2181 >= 0, X3104 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1192 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) :|: X456 >= 0, X3 >= 0, z = 1 + (1 + X456) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) :|: z = 1 + (1 + X1193 + X2182) + X2 + X3 + X4, X2182 >= 0, X3 >= 0, X1193 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) :|: X1191 >= 0, z = 1 + (1 + X1191 + X2180) + X2 + X3 + X4, X3 >= 0, X2180 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__length(mark(X455)), X2, X3, X4) :|: z = 1 + (1 + X455) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X455 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatList(X453), X2, X3, X4) :|: z = 1 + (1 + X453) + X2 + X3 + X4, X453 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatIList(X452), X2, X3, X4) :|: X452 >= 0, X3 >= 0, z = 1 + (1 + X452) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNat(X454), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X454) + X2 + X3 + X4, X454 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) :|: z = 1 + (1 + X1190 + X2179) + X2 + X3 + X4, X1190 >= 0, X2179 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X458), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X458) + X2 + X3 + X4, X458 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X1194) + X2183, X2, X3, X4) :|: X1194 >= 0, X2183 >= 0, z = 1 + (1 + X1194 + X2183) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake1(a__zeros) :|: z = 1 + 3 mark(z) -{ 2 }-> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) :|: X2176 >= 0, X1187 >= 0, X3103 >= 0, z = 1 + (1 + X1187 + X2176 + X3103 + X450), X450 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake1(mark(X449))) :|: X449 >= 0, z = 1 + (1 + X449) mark(z) -{ 2 }-> a__uTake1(a__uLength(mark(X1188), X2177)) :|: X1188 >= 0, X2177 >= 0, z = 1 + (1 + X1188 + X2177) mark(z) -{ 2 }-> a__uTake1(a__take(mark(X1186), mark(X2175))) :|: X1186 >= 0, z = 1 + (1 + X1186 + X2175), X2175 >= 0 mark(z) -{ 2 }-> a__uTake1(a__length(mark(X448))) :|: z = 1 + (1 + X448), X448 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatList(X446)) :|: X446 >= 0, z = 1 + (1 + X446) mark(z) -{ 2 }-> a__uTake1(a__isNatIList(X445)) :|: z = 1 + (1 + X445), X445 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNat(X447)) :|: z = 1 + (1 + X447), X447 >= 0 mark(z) -{ 2 }-> a__uTake1(a__and(mark(X1185), mark(X2174))) :|: X1185 >= 0, z = 1 + (1 + X1185 + X2174), X2174 >= 0 mark(z) -{ 2 }-> a__uTake1(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__uTake1(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__uTake1(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(X451)) :|: X451 >= 0, z = 1 + (1 + X451) mark(z) -{ 2 }-> a__uTake1(1 + mark(X1189) + X2178) :|: X2178 >= 0, X1189 >= 0, z = 1 + (1 + X1189 + X2178) mark(z) -{ 2 }-> a__uLength(a__zeros, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) :|: X2186 >= 0, X3105 >= 0, X1197 >= 0, X2 >= 0, z = 1 + (1 + X1197 + X2186 + X3105 + X464) + X2, X464 >= 0 mark(z) -{ 2 }-> a__uLength(a__uTake1(mark(X463)), X2) :|: X463 >= 0, z = 1 + (1 + X463) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__uLength(mark(X1198), X2187), X2) :|: X1198 >= 0, X2187 >= 0, z = 1 + (1 + X1198 + X2187) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__take(mark(X1196), mark(X2185)), X2) :|: X1196 >= 0, X2 >= 0, z = 1 + (1 + X1196 + X2185) + X2, X2185 >= 0 mark(z) -{ 2 }-> a__uLength(a__length(mark(X462)), X2) :|: z = 1 + (1 + X462) + X2, X462 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatList(X460), X2) :|: X460 >= 0, z = 1 + (1 + X460) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatIList(X459), X2) :|: z = 1 + (1 + X459) + X2, X459 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNat(X461), X2) :|: X461 >= 0, z = 1 + (1 + X461) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__and(mark(X1195), mark(X2184)), X2) :|: X1195 >= 0, X2184 >= 0, X2 >= 0, z = 1 + (1 + X1195 + X2184) + X2 mark(z) -{ 2 }-> a__uLength(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X465), X2) :|: X2 >= 0, z = 1 + (1 + X465) + X2, X465 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X1199) + X2188, X2) :|: z = 1 + (1 + X1199 + X2188) + X2, X2188 >= 0, X2 >= 0, X1199 >= 0 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__zeros) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(a__uTake2(mark(X1102), X286, X324, X423)) :|: X286 >= 0, X324 >= 0, X423 >= 0, z = 1 + (1 + X1102 + X286 + X324 + X423), X1102 >= 0 mark(z) -{ 2 }-> a__length(a__uTake1(mark(X204))) :|: z = 1 + (1 + X204), X204 >= 0 mark(z) -{ 2 }-> a__length(a__uLength(mark(X1103), X287)) :|: z = 1 + (1 + X1103 + X287), X287 >= 0, X1103 >= 0 mark(z) -{ 2 }-> a__length(a__take(mark(X1101), mark(X285))) :|: X1101 >= 0, z = 1 + (1 + X1101 + X285), X285 >= 0 mark(z) -{ 2 }-> a__length(a__length(mark(X203))) :|: z = 1 + (1 + X203), X203 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(X201)) :|: X201 >= 0, z = 1 + (1 + X201) mark(z) -{ 2 }-> a__length(a__isNatIList(X200)) :|: z = 1 + (1 + X200), X200 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X202)) :|: X202 >= 0, z = 1 + (1 + X202) mark(z) -{ 2 }-> a__length(a__and(mark(X1100), mark(X284))) :|: X1100 >= 0, X284 >= 0, z = 1 + (1 + X1100 + X284) mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(X205)) :|: z = 1 + (1 + X205), X205 >= 0 mark(z) -{ 2 }-> a__length(1 + mark(X1104) + X288) :|: z = 1 + (1 + X1104 + X288), X1104 >= 0, X288 >= 0 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (15) InliningProof (UPPER BOUND(ID)) Inlined the following terminating rules on right-hand sides where appropriate: a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(T) :|: z = 2, z' = T, T >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(L) :|: z = 1 + L, L >= 0 a__isNat(z) -{ 1 }-> a__isNat(N) :|: z = 1 + N, N >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(IL) :|: z = IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__isNatList(IL)) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) :|: L' >= 0, IL1 >= 0, z = 1 + (1 + L') + (1 + N2 + IL1), N2 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 2) :|: L' >= 0, z = 1 + (1 + L') + 3 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 1 + IL) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__isNatList(IL)) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) :|: IL'' >= 0, N1 >= 0, z = 1 + (1 + N') + (1 + N1 + IL''), N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 2) :|: z = 1 + (1 + N') + 3, N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 1 + IL) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N''), a__isNatIList(IL'))) :|: IL' >= 0, z = 1 + 0 + (1 + N'' + IL'), N'' >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatIList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N3), a__isNatIList(IL2))) :|: IL2 >= 0, N3 >= 0, z = 1 + N + (1 + N3 + IL2), N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) :|: L'' >= 0, z = 1 + (1 + L'') + (1 + N10 + IL5), N10 >= 0, IL5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) :|: L3 >= 0, z = 1 + (1 + L'') + (1 + N9 + L3), N9 >= 0, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 2) :|: z = 1 + (1 + L'') + 1, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 1 + L) :|: z = 1 + (1 + L'') + L, L'' >= 0, L >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__isNatList(IL)) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) :|: IL9 >= 0, L5 >= 0, N16 >= 0, z = 1 + (1 + L5) + (1 + N16 + IL9) a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 2) :|: L5 >= 0, z = 1 + (1 + L5) + 3 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 1 + IL) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__isNatList(IL)) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) :|: N15 >= 0, z = 1 + (1 + N13) + (1 + N15 + IL8), IL8 >= 0, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 2) :|: z = 1 + (1 + N13) + 3, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 1 + IL) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) :|: z = 1 + (1 + N4) + (1 + N7 + L2), N7 >= 0, L2 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) :|: z = 1 + (1 + N4) + (1 + N8 + IL4), N8 >= 0, IL4 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 2) :|: z = 1 + (1 + N4) + 1, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 1 + L) :|: z = 1 + (1 + N4) + L, L >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__isNatList(IL)) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N14), a__isNatIList(IL7))) :|: IL7 >= 0, N14 >= 0, z = 1 + 0 + (1 + N14 + IL7) a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N5), a__isNatList(L1))) :|: z = 1 + 0 + (1 + N5 + L1), L1 >= 0, N5 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N6), a__isNatIList(IL3))) :|: IL3 >= 0, z = 1 + 0 + (1 + N6 + IL3), N6 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 1 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatList(z) -{ 3 }-> a__and(2, 1 + IL) :|: z = 1 + 0 + IL, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 1 + L) :|: z = 1 + 0 + L, L >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N11), a__isNatList(L4))) :|: N11 >= 0, z = 1 + N + (1 + N11 + L4), N >= 0, L4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N12), a__isNatIList(IL6))) :|: z = 1 + N + (1 + N12 + IL6), N12 >= 0, IL6 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N17), a__isNatIList(IL10))) :|: z = 1 + N + (1 + N17 + IL10), IL10 >= 0, N17 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 1, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 2) :|: z = 1 + N + 3, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + L) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), 1 + N45 + L14) :|: z = 1 + (1 + L11) + (1 + N45 + L14), N45 >= 0, L11 >= 0, L14 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), 1 + N46 + IL30) :|: N46 >= 0, IL30 >= 0, L11 >= 0, z = 1 + (1 + L11) + (1 + N46 + IL30) a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 2), 1) :|: z = 1 + (1 + L11) + 1, L11 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 1 + L), L) :|: z = 1 + (1 + L11) + L, L11 >= 0, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), 1 + N43 + L13) :|: L13 >= 0, N43 >= 0, z = 1 + (1 + N40) + (1 + N43 + L13), N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), 1 + N44 + IL29) :|: IL29 >= 0, z = 1 + (1 + N40) + (1 + N44 + IL29), N44 >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 2), 1) :|: z = 1 + (1 + N40) + 1, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 1 + L), L) :|: z = 1 + (1 + N40) + L, L >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N41), a__isNatList(L12))), 1 + N41 + L12) :|: z = 1 + 0 + (1 + N41 + L12), L12 >= 0, N41 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N42), a__isNatIList(IL28))), 1 + N42 + IL28) :|: N42 >= 0, IL28 >= 0, z = 1 + 0 + (1 + N42 + IL28) a__length(z) -{ 3 }-> a__uLength(a__and(2, 2), 1) :|: z = 1 + 0 + 1 a__length(z) -{ 3 }-> a__uLength(a__and(2, 1 + L), L) :|: z = 1 + 0 + L, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N47), a__isNatList(L15))), 1 + N47 + L15) :|: z = 1 + N + (1 + N47 + L15), L15 >= 0, N47 >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N48), a__isNatIList(IL31))), 1 + N48 + IL31) :|: IL31 >= 0, N48 >= 0, z = 1 + N + (1 + N48 + IL31), N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 2), 1) :|: z = 1 + N + 1, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 1 + L), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__isNatList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) :|: IL11 >= 0, z' = 1 + N18 + IL11, z = 0, N18 >= 0 a__take(z, z') -{ 3 }-> 1 :|: z' = 3, z = 0, 2 = 2 a__take(z, z') -{ 3 }-> 1 :|: z' = IL, z = 0, IL >= 0, 1 + IL = 2 a__take(z, z') -{ 3 }-> 1 + X :|: z' = 3, z = 0, X >= 0, 2 = X a__take(z, z') -{ 3 }-> 1 + X :|: z' = IL, z = 0, IL >= 0, X >= 0, 1 + IL = X a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake2(mark(X11), X21, X3', X4')) :|: z = 2, X3' >= 0, X4' >= 0, X11 >= 0, X21 >= 0, z' = 1 + X11 + X21 + X3' + X4' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake1(mark(X7))) :|: z = 2, X7 >= 0, z' = 1 + X7 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uLength(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X1''), mark(X2''))) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__length(mark(X6))) :|: z = 2, X6 >= 0, z' = 1 + X6 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatList(X'')) :|: z = 2, z' = 1 + X'', X'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(X')) :|: z = 2, X' >= 0, z' = 1 + X' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNat(X5)) :|: z = 2, X5 >= 0, z' = 1 + X5 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1'), mark(X2'))) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__uLength(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__uLength(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__uLength(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X8)) :|: z = 2, X8 >= 0, z' = 1 + X8 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__uLength(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z' = M, z1 = IL, z'' = N, M >= 0, IL >= 0, N >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 2 }-> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) :|: z = 1 + (1 + X1192 + X2181 + X3104 + X457) + X2 + X3 + X4, X457 >= 0, X2181 >= 0, X3104 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1192 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) :|: X456 >= 0, X3 >= 0, z = 1 + (1 + X456) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) :|: z = 1 + (1 + X1193 + X2182) + X2 + X3 + X4, X2182 >= 0, X3 >= 0, X1193 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) :|: X1191 >= 0, z = 1 + (1 + X1191 + X2180) + X2 + X3 + X4, X3 >= 0, X2180 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__length(mark(X455)), X2, X3, X4) :|: z = 1 + (1 + X455) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X455 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatList(X453), X2, X3, X4) :|: z = 1 + (1 + X453) + X2 + X3 + X4, X453 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatIList(X452), X2, X3, X4) :|: X452 >= 0, X3 >= 0, z = 1 + (1 + X452) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNat(X454), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X454) + X2 + X3 + X4, X454 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) :|: z = 1 + (1 + X1190 + X2179) + X2 + X3 + X4, X1190 >= 0, X2179 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X458), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X458) + X2 + X3 + X4, X458 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X1194) + X2183, X2, X3, X4) :|: X1194 >= 0, X2183 >= 0, z = 1 + (1 + X1194 + X2183) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(1 + 0 + 3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) :|: X2176 >= 0, X1187 >= 0, X3103 >= 0, z = 1 + (1 + X1187 + X2176 + X3103 + X450), X450 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake1(mark(X449))) :|: X449 >= 0, z = 1 + (1 + X449) mark(z) -{ 2 }-> a__uTake1(a__uLength(mark(X1188), X2177)) :|: X1188 >= 0, X2177 >= 0, z = 1 + (1 + X1188 + X2177) mark(z) -{ 2 }-> a__uTake1(a__take(mark(X1186), mark(X2175))) :|: X1186 >= 0, z = 1 + (1 + X1186 + X2175), X2175 >= 0 mark(z) -{ 2 }-> a__uTake1(a__length(mark(X448))) :|: z = 1 + (1 + X448), X448 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatList(X446)) :|: X446 >= 0, z = 1 + (1 + X446) mark(z) -{ 2 }-> a__uTake1(a__isNatIList(X445)) :|: z = 1 + (1 + X445), X445 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNat(X447)) :|: z = 1 + (1 + X447), X447 >= 0 mark(z) -{ 2 }-> a__uTake1(a__and(mark(X1185), mark(X2174))) :|: X1185 >= 0, z = 1 + (1 + X1185 + X2174), X2174 >= 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(X451)) :|: X451 >= 0, z = 1 + (1 + X451) mark(z) -{ 2 }-> a__uTake1(1 + mark(X1189) + X2178) :|: X2178 >= 0, X1189 >= 0, z = 1 + (1 + X1189 + X2178) mark(z) -{ 2 }-> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) :|: X2186 >= 0, X3105 >= 0, X1197 >= 0, X2 >= 0, z = 1 + (1 + X1197 + X2186 + X3105 + X464) + X2, X464 >= 0 mark(z) -{ 2 }-> a__uLength(a__uTake1(mark(X463)), X2) :|: X463 >= 0, z = 1 + (1 + X463) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__uLength(mark(X1198), X2187), X2) :|: X1198 >= 0, X2187 >= 0, z = 1 + (1 + X1198 + X2187) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__take(mark(X1196), mark(X2185)), X2) :|: X1196 >= 0, X2 >= 0, z = 1 + (1 + X1196 + X2185) + X2, X2185 >= 0 mark(z) -{ 2 }-> a__uLength(a__length(mark(X462)), X2) :|: z = 1 + (1 + X462) + X2, X462 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatList(X460), X2) :|: X460 >= 0, z = 1 + (1 + X460) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatIList(X459), X2) :|: z = 1 + (1 + X459) + X2, X459 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNat(X461), X2) :|: X461 >= 0, z = 1 + (1 + X461) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__and(mark(X1195), mark(X2184)), X2) :|: X1195 >= 0, X2184 >= 0, X2 >= 0, z = 1 + (1 + X1195 + X2184) + X2 mark(z) -{ 3 }-> a__uLength(3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 2 }-> a__uLength(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X465), X2) :|: X2 >= 0, z = 1 + (1 + X465) + X2, X465 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X1199) + X2188, X2) :|: z = 1 + (1 + X1199 + X2188) + X2, X2188 >= 0, X2 >= 0, X1199 >= 0 mark(z) -{ 3 }-> a__uLength(1 + 0 + 3, X2) :|: X2 >= 0, z = 1 + 3 + X2 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__uTake2(mark(X1102), X286, X324, X423)) :|: X286 >= 0, X324 >= 0, X423 >= 0, z = 1 + (1 + X1102 + X286 + X324 + X423), X1102 >= 0 mark(z) -{ 2 }-> a__length(a__uTake1(mark(X204))) :|: z = 1 + (1 + X204), X204 >= 0 mark(z) -{ 2 }-> a__length(a__uLength(mark(X1103), X287)) :|: z = 1 + (1 + X1103 + X287), X287 >= 0, X1103 >= 0 mark(z) -{ 2 }-> a__length(a__take(mark(X1101), mark(X285))) :|: X1101 >= 0, z = 1 + (1 + X1101 + X285), X285 >= 0 mark(z) -{ 2 }-> a__length(a__length(mark(X203))) :|: z = 1 + (1 + X203), X203 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(X201)) :|: X201 >= 0, z = 1 + (1 + X201) mark(z) -{ 2 }-> a__length(a__isNatIList(X200)) :|: z = 1 + (1 + X200), X200 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(X202)) :|: X202 >= 0, z = 1 + (1 + X202) mark(z) -{ 2 }-> a__length(a__and(mark(X1100), mark(X284))) :|: X1100 >= 0, X284 >= 0, z = 1 + (1 + X1100 + X284) mark(z) -{ 3 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(X205)) :|: z = 1 + (1 + X205), X205 >= 0 mark(z) -{ 2 }-> a__length(1 + mark(X1104) + X288) :|: z = 1 + (1 + X1104 + X288), X1104 >= 0, X288 >= 0 mark(z) -{ 3 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 3 :|: z = 3 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 3 }-> 1 :|: z = 1 + 2, 2 = 2 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 2, X >= 0, 2 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 3 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 1 + 0 + 3 = X mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (17) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (18) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(z') :|: z = 2, z' >= 0 a__and(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__isNat(z) -{ 1 }-> a__isNatList(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 1 }-> a__isNat(z - 1) :|: z - 1 >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + z :|: z >= 0 a__isNatIList(z) -{ 1 }-> a__isNatList(z) :|: z >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__isNatList(IL)) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), a__and(a__isNat(N2), a__isNatIList(IL1))) :|: L' >= 0, IL1 >= 0, z = 1 + (1 + L') + (1 + N2 + IL1), N2 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(L'), 1 + IL) :|: L' >= 0, z = 1 + (1 + L') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNatList(z - 5), 2) :|: z - 5 >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__isNatList(IL)) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), a__and(a__isNat(N1), a__isNatIList(IL''))) :|: IL'' >= 0, N1 >= 0, z = 1 + (1 + N') + (1 + N1 + IL''), N' >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(N'), 1 + IL) :|: N' >= 0, z = 1 + (1 + N') + IL, IL >= 0 a__isNatIList(z) -{ 3 }-> a__and(a__isNat(z - 5), 2) :|: z - 5 >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__isNatList(z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N''), a__isNatIList(IL'))) :|: IL' >= 0, z = 1 + 0 + (1 + N'' + IL'), N'' >= 0 a__isNatIList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatIList(z) -{ 3 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N3), a__isNatIList(IL2))) :|: IL2 >= 0, N3 >= 0, z = 1 + N + (1 + N3 + IL2), N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 3 }-> a__and(1 + (z - 4), 2) :|: z - 4 >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + z :|: z >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N10), a__isNatIList(IL5))) :|: L'' >= 0, z = 1 + (1 + L'') + (1 + N10 + IL5), N10 >= 0, IL5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), a__and(a__isNat(N9), a__isNatList(L3))) :|: L3 >= 0, z = 1 + (1 + L'') + (1 + N9 + L3), N9 >= 0, L'' >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L''), 1 + L) :|: z = 1 + (1 + L'') + L, L'' >= 0, L >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__isNatList(IL)) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), a__and(a__isNat(N16), a__isNatIList(IL9))) :|: IL9 >= 0, L5 >= 0, N16 >= 0, z = 1 + (1 + L5) + (1 + N16 + IL9) a__isNatList(z) -{ 3 }-> a__and(a__isNatList(L5), 1 + IL) :|: z = 1 + (1 + L5) + IL, L5 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(z - 5), 2) :|: z - 5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNatList(z - 3), 2) :|: z - 3 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__isNatList(IL)) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), a__and(a__isNat(N15), a__isNatIList(IL8))) :|: N15 >= 0, z = 1 + (1 + N13) + (1 + N15 + IL8), IL8 >= 0, N13 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N13), 1 + IL) :|: z = 1 + (1 + N13) + IL, N13 >= 0, IL >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N7), a__isNatList(L2))) :|: z = 1 + (1 + N4) + (1 + N7 + L2), N7 >= 0, L2 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), a__and(a__isNat(N8), a__isNatIList(IL4))) :|: z = 1 + (1 + N4) + (1 + N8 + IL4), N8 >= 0, IL4 >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(N4), 1 + L) :|: z = 1 + (1 + N4) + L, L >= 0, N4 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(z - 5), 2) :|: z - 5 >= 0 a__isNatList(z) -{ 3 }-> a__and(a__isNat(z - 3), 2) :|: z - 3 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__isNatList(z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N14), a__isNatIList(IL7))) :|: IL7 >= 0, N14 >= 0, z = 1 + 0 + (1 + N14 + IL7) a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N5), a__isNatList(L1))) :|: z = 1 + 0 + (1 + N5 + L1), L1 >= 0, N5 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, a__and(a__isNat(N6), a__isNatIList(IL3))) :|: IL3 >= 0, z = 1 + 0 + (1 + N6 + IL3), N6 >= 0 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 1 a__isNatList(z) -{ 3 }-> a__and(2, 2) :|: z = 1 + 0 + 3 a__isNatList(z) -{ 3 }-> a__and(2, 1 + (z - 1)) :|: z - 1 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__isNatList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N11), a__isNatList(L4))) :|: N11 >= 0, z = 1 + N + (1 + N11 + L4), N >= 0, L4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N12), a__isNatIList(IL6))) :|: z = 1 + N + (1 + N12 + IL6), N12 >= 0, IL6 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, a__and(a__isNat(N17), a__isNatIList(IL10))) :|: z = 1 + N + (1 + N17 + IL10), IL10 >= 0, N17 >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + IL) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + N, 1 + L) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + (z - 4), 2) :|: z - 4 >= 0 a__isNatList(z) -{ 3 }-> a__and(1 + (z - 2), 2) :|: z - 2 >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + z :|: z >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N45), a__isNatList(L14))), 1 + N45 + L14) :|: z = 1 + (1 + L11) + (1 + N45 + L14), N45 >= 0, L11 >= 0, L14 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), a__and(a__isNat(N46), a__isNatIList(IL30))), 1 + N46 + IL30) :|: N46 >= 0, IL30 >= 0, L11 >= 0, z = 1 + (1 + L11) + (1 + N46 + IL30) a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(L11), 1 + L), L) :|: z = 1 + (1 + L11) + L, L11 >= 0, L >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNatList(z - 3), 2), 1) :|: z - 3 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N43), a__isNatList(L13))), 1 + N43 + L13) :|: L13 >= 0, N43 >= 0, z = 1 + (1 + N40) + (1 + N43 + L13), N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), a__and(a__isNat(N44), a__isNatIList(IL29))), 1 + N44 + IL29) :|: IL29 >= 0, z = 1 + (1 + N40) + (1 + N44 + IL29), N44 >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(N40), 1 + L), L) :|: z = 1 + (1 + N40) + L, L >= 0, N40 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(a__isNat(z - 3), 2), 1) :|: z - 3 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N41), a__isNatList(L12))), 1 + N41 + L12) :|: z = 1 + 0 + (1 + N41 + L12), L12 >= 0, N41 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(2, a__and(a__isNat(N42), a__isNatIList(IL28))), 1 + N42 + IL28) :|: N42 >= 0, IL28 >= 0, z = 1 + 0 + (1 + N42 + IL28) a__length(z) -{ 3 }-> a__uLength(a__and(2, 2), 1) :|: z = 1 + 0 + 1 a__length(z) -{ 3 }-> a__uLength(a__and(2, 1 + (z - 1)), z - 1) :|: z - 1 >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N47), a__isNatList(L15))), 1 + N47 + L15) :|: z = 1 + N + (1 + N47 + L15), L15 >= 0, N47 >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, a__and(a__isNat(N48), a__isNatIList(IL31))), 1 + N48 + IL31) :|: IL31 >= 0, N48 >= 0, z = 1 + N + (1 + N48 + IL31), N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + N, 1 + L), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 3 }-> a__uLength(a__and(1 + (z - 2), 2), 1) :|: z - 2 >= 0 a__length(z) -{ 1 }-> 1 + z :|: z >= 0 a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(z - 1), a__and(a__isNat(N), a__isNatIList(IL))), z - 1, N, IL) :|: z - 1 >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__isNatList(z')) :|: z = 0, z' >= 0 a__take(z, z') -{ 2 }-> a__uTake1(a__and(a__isNat(N18), a__isNatIList(IL11))) :|: IL11 >= 0, z' = 1 + N18 + IL11, z = 0, N18 >= 0 a__take(z, z') -{ 3 }-> 1 :|: z' = 3, z = 0, 2 = 2 a__take(z, z') -{ 3 }-> 1 :|: z = 0, z' >= 0, 1 + z' = 2 a__take(z, z') -{ 3 }-> 1 + X :|: z' = 3, z = 0, X >= 0, 2 = X a__take(z, z') -{ 3 }-> 1 + X :|: z = 0, z' >= 0, X >= 0, 1 + z' = X a__take(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake2(mark(X11), X21, X3', X4')) :|: z = 2, X3' >= 0, X4' >= 0, X11 >= 0, X21 >= 0, z' = 1 + X11 + X21 + X3' + X4' a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uTake1(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__uLength(mark(X12), X22)) :|: z = 2, z' = 1 + X12 + X22, X12 >= 0, X22 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__take(mark(X1''), mark(X2''))) :|: z = 2, z' = 1 + X1'' + X2'', X1'' >= 0, X2'' >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__length(mark(z' - 1))) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNatIList(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__isNat(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(a__and(mark(X1'), mark(X2'))) :|: z = 2, z' = 1 + X1' + X2', X2' >= 0, X1' >= 0 a__uLength(z, z') -{ 3 }-> 1 + a__length(3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 2 }-> 1 + a__length(2) :|: z = 2, z' = 2 a__uLength(z, z') -{ 2 }-> 1 + a__length(1) :|: z = 2, z' = 1 a__uLength(z, z') -{ 2 }-> 1 + a__length(0) :|: z = 2, z' = 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(z' - 1)) :|: z = 2, z' - 1 >= 0 a__uLength(z, z') -{ 2 }-> 1 + a__length(1 + mark(X13) + X23) :|: z = 2, X13 >= 0, X23 >= 0, z' = 1 + X13 + X23 a__uLength(z, z') -{ 3 }-> 1 + a__length(1 + 0 + 3) :|: z = 2, z' = 3 a__uLength(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + z :|: z >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(z'') + (1 + z' + z1) :|: z = 2, z' >= 0, z1 >= 0, z'' >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + z + z' + z'' + z1 :|: z >= 0, z'' >= 0, z' >= 0, z1 >= 0 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 2 }-> a__uTake2(a__uTake2(mark(X1192), X2181, X3104, X457), X2, X3, X4) :|: z = 1 + (1 + X1192 + X2181 + X3104 + X457) + X2 + X3 + X4, X457 >= 0, X2181 >= 0, X3104 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1192 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uTake1(mark(X456)), X2, X3, X4) :|: X456 >= 0, X3 >= 0, z = 1 + (1 + X456) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__uLength(mark(X1193), X2182), X2, X3, X4) :|: z = 1 + (1 + X1193 + X2182) + X2 + X3 + X4, X2182 >= 0, X3 >= 0, X1193 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__take(mark(X1191), mark(X2180)), X2, X3, X4) :|: X1191 >= 0, z = 1 + (1 + X1191 + X2180) + X2 + X3 + X4, X3 >= 0, X2180 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__length(mark(X455)), X2, X3, X4) :|: z = 1 + (1 + X455) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X455 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatList(X453), X2, X3, X4) :|: z = 1 + (1 + X453) + X2 + X3 + X4, X453 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNatIList(X452), X2, X3, X4) :|: X452 >= 0, X3 >= 0, z = 1 + (1 + X452) + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__isNat(X454), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X454) + X2 + X3 + X4, X454 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(a__and(mark(X1190), mark(X2179)), X2, X3, X4) :|: z = 1 + (1 + X1190 + X2179) + X2 + X3 + X4, X1190 >= 0, X2179 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__uTake2(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X458), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X458) + X2 + X3 + X4, X458 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake2(1 + mark(X1194) + X2183, X2, X3, X4) :|: X1194 >= 0, X2183 >= 0, z = 1 + (1 + X1194 + X2183) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 3 }-> a__uTake2(1 + 0 + 3, X2, X3, X4) :|: X3 >= 0, z = 1 + 3 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake2(mark(X1187), X2176, X3103, X450)) :|: X2176 >= 0, X1187 >= 0, X3103 >= 0, z = 1 + (1 + X1187 + X2176 + X3103 + X450), X450 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uTake1(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__uLength(mark(X1188), X2177)) :|: X1188 >= 0, X2177 >= 0, z = 1 + (1 + X1188 + X2177) mark(z) -{ 2 }-> a__uTake1(a__take(mark(X1186), mark(X2175))) :|: X1186 >= 0, z = 1 + (1 + X1186 + X2175), X2175 >= 0 mark(z) -{ 2 }-> a__uTake1(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(a__and(mark(X1185), mark(X2174))) :|: X1185 >= 0, z = 1 + (1 + X1185 + X2174), X2174 >= 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uTake1(1 + mark(X1189) + X2178) :|: X2178 >= 0, X1189 >= 0, z = 1 + (1 + X1189 + X2178) mark(z) -{ 2 }-> a__uLength(a__uTake2(mark(X1197), X2186, X3105, X464), X2) :|: X2186 >= 0, X3105 >= 0, X1197 >= 0, X2 >= 0, z = 1 + (1 + X1197 + X2186 + X3105 + X464) + X2, X464 >= 0 mark(z) -{ 2 }-> a__uLength(a__uTake1(mark(X463)), X2) :|: X463 >= 0, z = 1 + (1 + X463) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__uLength(mark(X1198), X2187), X2) :|: X1198 >= 0, X2187 >= 0, z = 1 + (1 + X1198 + X2187) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__take(mark(X1196), mark(X2185)), X2) :|: X1196 >= 0, X2 >= 0, z = 1 + (1 + X1196 + X2185) + X2, X2185 >= 0 mark(z) -{ 2 }-> a__uLength(a__length(mark(X462)), X2) :|: z = 1 + (1 + X462) + X2, X462 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatList(X460), X2) :|: X460 >= 0, z = 1 + (1 + X460) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNatIList(X459), X2) :|: z = 1 + (1 + X459) + X2, X459 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__isNat(X461), X2) :|: X461 >= 0, z = 1 + (1 + X461) + X2, X2 >= 0 mark(z) -{ 2 }-> a__uLength(a__and(mark(X1195), mark(X2184)), X2) :|: X1195 >= 0, X2184 >= 0, X2 >= 0, z = 1 + (1 + X1195 + X2184) + X2 mark(z) -{ 3 }-> a__uLength(3, z - 4) :|: z - 4 >= 0 mark(z) -{ 2 }-> a__uLength(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__uLength(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__uLength(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X465), X2) :|: X2 >= 0, z = 1 + (1 + X465) + X2, X465 >= 0 mark(z) -{ 2 }-> a__uLength(1 + mark(X1199) + X2188, X2) :|: z = 1 + (1 + X1199 + X2188) + X2, X2188 >= 0, X2 >= 0, X1199 >= 0 mark(z) -{ 3 }-> a__uLength(1 + 0 + 3, z - 4) :|: z - 4 >= 0 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__length(a__uTake2(mark(X1102), X286, X324, X423)) :|: X286 >= 0, X324 >= 0, X423 >= 0, z = 1 + (1 + X1102 + X286 + X324 + X423), X1102 >= 0 mark(z) -{ 2 }-> a__length(a__uTake1(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__uLength(mark(X1103), X287)) :|: z = 1 + (1 + X1103 + X287), X287 >= 0, X1103 >= 0 mark(z) -{ 2 }-> a__length(a__take(mark(X1101), mark(X285))) :|: X1101 >= 0, z = 1 + (1 + X1101 + X285), X285 >= 0 mark(z) -{ 2 }-> a__length(a__length(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNatList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNatIList(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__isNat(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(a__and(mark(X1100), mark(X284))) :|: X1100 >= 0, X284 >= 0, z = 1 + (1 + X1100 + X284) mark(z) -{ 3 }-> a__length(3) :|: z = 1 + 3 mark(z) -{ 2 }-> a__length(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__length(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__length(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__length(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__length(1 + mark(X1104) + X288) :|: z = 1 + (1 + X1104 + X288), X1104 >= 0, X288 >= 0 mark(z) -{ 3 }-> a__length(1 + 0 + 3) :|: z = 1 + 3 mark(z) -{ 1 }-> a__isNatList(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__isNatIList(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__isNat(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 3 :|: z = 3 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 3 }-> 1 :|: z = 1 + 2, 2 = 2 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 3 }-> 1 + X :|: z = 1 + 2, X >= 0, 2 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 0, X >= 0, 0 = X mark(z) -{ 3 }-> 1 + X :|: z = 1 + 1, X >= 0, 1 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 3 = X mark(z) -{ 4 }-> 1 + X :|: z = 1 + 3, X >= 0, 1 + 0 + 3 = X mark(z) -{ 1 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> 1 + 0 + 3 :|: z = 3 ---------------------------------------- (19) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: none And the following fresh constants: none ---------------------------------------- (20) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__and(tt, T) -> mark(T) [1] a__isNatIList(IL) -> a__isNatList(IL) [1] a__isNat(0) -> tt [1] a__isNat(s(N)) -> a__isNat(N) [1] a__isNat(length(L)) -> a__isNatList(L) [1] a__isNatIList(zeros) -> tt [1] a__isNatIList(cons(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__isNatList(nil) -> tt [1] a__isNatList(cons(N, L)) -> a__and(a__isNat(N), a__isNatList(L)) [1] a__isNatList(take(N, IL)) -> a__and(a__isNat(N), a__isNatIList(IL)) [1] a__zeros -> cons(0, zeros) [1] a__take(0, IL) -> a__uTake1(a__isNatIList(IL)) [1] a__uTake1(tt) -> nil [1] a__take(s(M), cons(N, IL)) -> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) [1] a__uTake2(tt, M, N, IL) -> cons(mark(N), take(M, IL)) [1] a__length(cons(N, L)) -> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) [1] a__uLength(tt, L) -> s(a__length(mark(L))) [1] mark(and(X1, X2)) -> a__and(mark(X1), mark(X2)) [1] mark(isNatIList(X)) -> a__isNatIList(X) [1] mark(isNatList(X)) -> a__isNatList(X) [1] mark(isNat(X)) -> a__isNat(X) [1] mark(length(X)) -> a__length(mark(X)) [1] mark(zeros) -> a__zeros [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(uTake1(X)) -> a__uTake1(mark(X)) [1] mark(uTake2(X1, X2, X3, X4)) -> a__uTake2(mark(X1), X2, X3, X4) [1] mark(uLength(X1, X2)) -> a__uLength(mark(X1), X2) [1] mark(tt) -> tt [1] mark(0) -> 0 [1] mark(s(X)) -> s(mark(X)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(nil) -> nil [1] a__and(X1, X2) -> and(X1, X2) [1] a__isNatIList(X) -> isNatIList(X) [1] a__isNatList(X) -> isNatList(X) [1] a__isNat(X) -> isNat(X) [1] a__length(X) -> length(X) [1] a__zeros -> zeros [1] a__take(X1, X2) -> take(X1, X2) [1] a__uTake1(X) -> uTake1(X) [1] a__uTake2(X1, X2, X3, X4) -> uTake2(X1, X2, X3, X4) [1] a__uLength(X1, X2) -> uLength(X1, X2) [1] The TRS has the following type information: a__and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength tt :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength mark :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength 0 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength s :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength cons :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength nil :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__zeros :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__take :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__length :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength a__uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength and :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatIList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNatList :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength isNat :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake1 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uTake2 :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength uLength :: tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength -> tt:0:s:length:zeros:cons:nil:take:and:isNatIList:isNatList:isNat:uTake1:uTake2:uLength Rewrite Strategy: INNERMOST ---------------------------------------- (21) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 zeros => 3 nil => 1 ---------------------------------------- (22) Obligation: Complexity RNTS consisting of the following rules: a__and(z, z') -{ 1 }-> mark(T) :|: z = 2, z' = T, T >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__isNat(z) -{ 1 }-> a__isNatList(L) :|: z = 1 + L, L >= 0 a__isNat(z) -{ 1 }-> a__isNat(N) :|: z = 1 + N, N >= 0 a__isNat(z) -{ 1 }-> 2 :|: z = 0 a__isNat(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatIList(z) -{ 1 }-> a__isNatList(IL) :|: z = IL, IL >= 0 a__isNatIList(z) -{ 1 }-> a__and(a__isNat(N), a__isNatIList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatIList(z) -{ 1 }-> 2 :|: z = 3 a__isNatIList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__isNatList(z) -{ 1 }-> a__and(a__isNat(N), a__isNatList(L)) :|: z = 1 + N + L, L >= 0, N >= 0 a__isNatList(z) -{ 1 }-> a__and(a__isNat(N), a__isNatIList(IL)) :|: z = 1 + N + IL, IL >= 0, N >= 0 a__isNatList(z) -{ 1 }-> 2 :|: z = 1 a__isNatList(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__length(z) -{ 1 }-> a__uLength(a__and(a__isNat(N), a__isNatList(L)), L) :|: z = 1 + N + L, L >= 0, N >= 0 a__length(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__uTake2(a__and(a__isNat(M), a__and(a__isNat(N), a__isNatIList(IL))), M, N, IL) :|: z = 1 + M, M >= 0, IL >= 0, z' = 1 + N + IL, N >= 0 a__take(z, z') -{ 1 }-> a__uTake1(a__isNatIList(IL)) :|: z' = IL, z = 0, IL >= 0 a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uLength(z, z') -{ 1 }-> 1 + a__length(mark(L)) :|: z = 2, L >= 0, z' = L a__uLength(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__uTake1(z) -{ 1 }-> 1 :|: z = 2 a__uTake1(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + mark(N) + (1 + M + IL) :|: z = 2, z' = M, z1 = IL, z'' = N, M >= 0, IL >= 0, N >= 0 a__uTake2(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__zeros -{ 1 }-> 3 :|: a__zeros -{ 1 }-> 1 + 0 + 3 :|: mark(z) -{ 1 }-> a__zeros :|: z = 3 mark(z) -{ 1 }-> a__uTake2(mark(X1), X2, X3, X4) :|: X1 >= 0, z = 1 + X1 + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 1 }-> a__uTake1(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__uLength(mark(X1), X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__length(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNatIList(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__isNat(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (23) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (24) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__AND(z0, z1) -> c1 A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(zeros) -> c3 A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATILIST(z0) -> c6 A__ISNAT(0) -> c7 A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNAT(z0) -> c10 A__ISNATLIST(nil) -> c11 A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNATLIST(z0) -> c16 A__ZEROS -> c17 A__ZEROS -> c18 A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__TAKE(z0, z1) -> c23 A__UTAKE1(tt) -> c24 A__UTAKE1(z0) -> c25 A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__UTAKE2(z0, z1, z2, z3) -> c27 A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__LENGTH(z0) -> c30 A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) A__ULENGTH(z0, z1) -> c32 MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(zeros) -> c39(A__ZEROS) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(tt) -> c45 MARK(0) -> c46 MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) MARK(nil) -> c49 K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__ZEROS, A__TAKE_2, A__UTAKE1_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c1, c2_1, c3, c4_2, c5_2, c6, c7, c8_1, c9_1, c10, c11, c12_2, c13_2, c14_2, c15_2, c16, c17, c18, c19_2, c20_3, c21_4, c22_4, c23, c24, c25, c26_1, c27, c28_3, c29_3, c30, c31_2, c32, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c39_1, c40_2, c41_2, c42_2, c43_2, c44_2, c45, c46, c47_1, c48_1, c49 ---------------------------------------- (25) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 19 trailing nodes: A__UTAKE2(z0, z1, z2, z3) -> c27 A__ISNATILIST(z0) -> c6 MARK(nil) -> c49 A__ISNATILIST(zeros) -> c3 A__ULENGTH(z0, z1) -> c32 A__UTAKE1(tt) -> c24 A__ISNATLIST(z0) -> c16 A__ISNATLIST(nil) -> c11 A__UTAKE1(z0) -> c25 A__ISNAT(z0) -> c10 A__ZEROS -> c17 MARK(0) -> c46 MARK(zeros) -> c39(A__ZEROS) A__ISNAT(0) -> c7 A__AND(z0, z1) -> c1 A__LENGTH(z0) -> c30 A__TAKE(z0, z1) -> c23 MARK(tt) -> c45 A__ZEROS -> c18 ---------------------------------------- (26) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(0, z0) -> c19(A__UTAKE1(a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake1(z0)) -> c42(A__UTAKE1(mark(z0)), MARK(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c4_2, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c19_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c42_2, c43_2, c44_2, c47_1, c48_1 ---------------------------------------- (27) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (28) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c4_2, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1 ---------------------------------------- (29) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(z0, z1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) by A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (30) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2 ---------------------------------------- (31) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (32) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c5_2, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1 ---------------------------------------- (33) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(z0, z1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) by A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2 ---------------------------------------- (35) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c12_2, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1 ---------------------------------------- (37) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(z0, z1)) -> c12(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) by A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2 ---------------------------------------- (39) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c13_2, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1 ---------------------------------------- (41) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(z0, z1)) -> c13(A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) by A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt), A__ISNATLIST(nil)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt), A__ISNATLIST(nil)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt), A__ISNATLIST(nil)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2 ---------------------------------------- (43) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c14_2, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1 ---------------------------------------- (45) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(take(z0, z1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNAT(z0)) by A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(z0, x1)) -> c14(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(z0, x1)) -> c14(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1)), A__ISNAT(0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(z0, x1)) -> c14(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2 ---------------------------------------- (47) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__ISNATLIST_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c15_2, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1 ---------------------------------------- (49) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(take(z0, z1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(z1)), A__ISNATILIST(z1)) by A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2 ---------------------------------------- (51) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c20_3, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1 ---------------------------------------- (53) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(z0), cons(z1, z2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__ISNAT(z0)) by A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3 ---------------------------------------- (55) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c21_4, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2 ---------------------------------------- (57) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(z0), cons(z1, z2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNAT(z1)) by A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNAT(0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNAT(0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNAT(0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4 ---------------------------------------- (59) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__TAKE_2, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c22_4, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3 ---------------------------------------- (61) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(s(z0), cons(z1, z2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2), A__AND(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), A__AND(a__isNat(z1), a__isNatIList(z2)), A__ISNATILIST(z2)) by A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(and(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4 ---------------------------------------- (63) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c28_3, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3 ---------------------------------------- (65) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(z0, z1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNAT(z0)) by A__LENGTH(cons(x0, x1)) -> c28(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNAT(0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, x1)) -> c28(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNAT(0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, x1)) -> c28(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNAT(0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__LENGTH_1, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c29_3, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2 ---------------------------------------- (69) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__LENGTH(cons(z0, z1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(z1)), z1), A__AND(a__isNat(z0), a__isNatList(z1)), A__ISNATLIST(z1)) by A__LENGTH(cons(x0, x1)) -> c29(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, x1)) -> c29(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, x1)) -> c29(A__ULENGTH(and(a__isNat(x0), a__isNatList(x1)), x1), A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNATLIST(nil)) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3 ---------------------------------------- (71) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, A__ULENGTH_2, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c31_2, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2 ---------------------------------------- (73) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ULENGTH(tt, z0) -> c31(A__LENGTH(mark(z0)), MARK(z0)) by A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2 ---------------------------------------- (75) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: A__ULENGTH(tt, nil) -> c31(A__LENGTH(nil), MARK(nil)) A__ULENGTH(tt, tt) -> c31(A__LENGTH(tt), MARK(tt)) A__ULENGTH(tt, 0) -> c31(A__LENGTH(0), MARK(0)) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, nil)) -> c28(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, nil)) -> c29(A__ULENGTH(a__and(a__isNat(x0), tt), nil), A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros), MARK(zeros)) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, s(z0)) -> c31(A__LENGTH(s(mark(z0))), MARK(s(z0))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2 ---------------------------------------- (77) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c33_2, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1 ---------------------------------------- (79) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(z0, z1)) -> c33(A__AND(mark(z0), mark(z1)), MARK(z0)) by MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2 ---------------------------------------- (81) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(and(0, x1)) -> c33(A__AND(0, mark(x1)), MARK(0)) MARK(and(nil, x1)) -> c33(A__AND(nil, mark(x1)), MARK(nil)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1)), MARK(zeros)) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1)), MARK(tt)) MARK(and(s(z0), x1)) -> c33(A__AND(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(A__AND(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c34_2, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(z0, z1)) -> c34(A__AND(mark(z0), mark(z1)), MARK(z1)) by MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros), MARK(zeros)) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt), MARK(tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0), MARK(0)) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil), MARK(nil)) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(0, x1)) -> c34(A__AND(0, mark(x1)), MARK(x1)) MARK(and(s(z0), x1)) -> c34(A__AND(s(mark(z0)), mark(x1)), MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(A__AND(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(nil, x1)) -> c34(A__AND(nil, mark(x1)), MARK(x1)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros), MARK(zeros)) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt), MARK(tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0), MARK(0)) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil), MARK(nil)) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(0, x1)) -> c34(A__AND(0, mark(x1)), MARK(x1)) MARK(and(s(z0), x1)) -> c34(A__AND(s(mark(z0)), mark(x1)), MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(A__AND(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(nil, x1)) -> c34(A__AND(nil, mark(x1)), MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros), MARK(zeros)) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt), MARK(tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0), MARK(0)) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil), MARK(nil)) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(0, x1)) -> c34(A__AND(0, mark(x1)), MARK(x1)) MARK(and(s(z0), x1)) -> c34(A__AND(s(mark(z0)), mark(x1)), MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(A__AND(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(nil, x1)) -> c34(A__AND(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2 ---------------------------------------- (87) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 8 trailing tuple parts ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c38_2, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1 ---------------------------------------- (89) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(length(z0)) -> c38(A__LENGTH(mark(z0)), MARK(z0)) by MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2 ---------------------------------------- (91) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(length(nil)) -> c38(A__LENGTH(nil), MARK(nil)) MARK(length(tt)) -> c38(A__LENGTH(tt), MARK(tt)) MARK(length(0)) -> c38(A__LENGTH(0), MARK(0)) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros), MARK(zeros)) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(s(z0))) -> c38(A__LENGTH(s(mark(z0))), MARK(s(z0))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2 ---------------------------------------- (93) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c40_2, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1 ---------------------------------------- (95) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(take(z0, z1)) -> c40(A__TAKE(mark(z0), mark(z1)), MARK(z0)) by MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2 ---------------------------------------- (97) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(take(nil, x1)) -> c40(A__TAKE(nil, mark(x1)), MARK(nil)) MARK(take(tt, x1)) -> c40(A__TAKE(tt, mark(x1)), MARK(tt)) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1)), MARK(zeros)) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1)), MARK(0)) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(cons(z0, z1), x1)) -> c40(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2 ---------------------------------------- (99) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c41_2, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1 ---------------------------------------- (101) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(take(z0, z1)) -> c41(A__TAKE(mark(z0), mark(z1)), MARK(z1)) by MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c41(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c41(A__TAKE(nil, mark(x1)), MARK(x1)) ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c41(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c41(A__TAKE(nil, mark(x1)), MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros), MARK(zeros)) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt), MARK(tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0), MARK(0)) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil), MARK(nil)) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(tt, x1)) -> c41(A__TAKE(tt, mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(A__TAKE(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(nil, x1)) -> c41(A__TAKE(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2 ---------------------------------------- (103) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c43_2, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1 ---------------------------------------- (105) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(uTake2(z0, z1, z2, z3)) -> c43(A__UTAKE2(mark(z0), z1, z2, z3), MARK(z0)) by MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2 ---------------------------------------- (107) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(uTake2(nil, x1, x2, x3)) -> c43(A__UTAKE2(nil, x1, x2, x3), MARK(nil)) MARK(uTake2(0, x1, x2, x3)) -> c43(A__UTAKE2(0, x1, x2, x3), MARK(0)) ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3), MARK(zeros)) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3), MARK(tt)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(A__UTAKE2(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2 ---------------------------------------- (109) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c44_2, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1 ---------------------------------------- (111) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(uLength(z0, z1)) -> c44(A__ULENGTH(mark(z0), z1), MARK(z0)) by MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2 ---------------------------------------- (113) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(uLength(nil, x1)) -> c44(A__ULENGTH(nil, x1), MARK(nil)) MARK(uLength(0, x1)) -> c44(A__ULENGTH(0, x1), MARK(0)) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1), MARK(zeros)) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1), MARK(tt)) MARK(uLength(s(z0), x1)) -> c44(A__ULENGTH(s(mark(z0)), x1), MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(A__ULENGTH(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2 ---------------------------------------- (115) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) by A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (119) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) by A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, zeros)) -> c4(A__AND(isNat(z0), tt), A__ISNAT(z0)) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, zeros)) -> c4(A__AND(isNat(z0), tt), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, zeros)) -> c4(A__AND(isNat(z0), tt), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (123) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (125) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) by A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (127) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) by A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1)), A__ISNAT(0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(z0, x1)) -> c4(A__AND(isNat(z0), isNatIList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (131) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (133) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) by A__ISNATILIST(cons(s(x0), z0)) -> c4(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(x0), zeros)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(x0), cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(x0), z0)) -> c4(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(s(x0))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (135) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_2, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1 ---------------------------------------- (137) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) by A__ISNATILIST(cons(length(x0), z0)) -> c4(A__AND(a__isNatList(x0), a__isNatList(z0)), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(x0), zeros)) -> c4(A__AND(a__isNatList(x0), tt), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(x0), cons(z0, z1))) -> c4(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(x0), z0)) -> c4(A__AND(a__isNatList(x0), isNatIList(z0)), A__ISNAT(length(x0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (139) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (141) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatIList(x1))) by A__ISNATILIST(cons(0, z0)) -> c4(A__AND(tt, a__isNatList(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(0, cons(z0, z1))) -> c4(A__AND(tt, a__and(a__isNat(z0), a__isNatIList(z1)))) A__ISNATILIST(cons(0, z0)) -> c4(A__AND(tt, isNatIList(z0))) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (143) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) by A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (145) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (147) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) by A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(z0, zeros)) -> c5(A__AND(isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(z0, zeros)) -> c5(A__AND(isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(z0, zeros)) -> c5(A__AND(isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (149) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (151) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) by A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c5(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c5(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c5(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (153) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (155) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) by A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__AND(isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (157) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (159) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) by A__ISNATILIST(cons(0, z0)) -> c5(A__AND(tt, a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(0, cons(z0, z1))) -> c5(A__AND(tt, a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(0, z0)) -> c5(A__AND(tt, isNatIList(z0)), A__ISNATILIST(z0)) ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (161) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) by A__ISNATILIST(cons(s(x0), z0)) -> c5(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(s(x0), zeros)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(x0), cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(s(x0), z0)) -> c5(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (163) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_2, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2 ---------------------------------------- (165) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) by A__ISNATILIST(cons(length(x0), z0)) -> c5(A__AND(a__isNatList(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(length(x0), zeros)) -> c5(A__AND(a__isNatList(x0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(x0), cons(z0, z1))) -> c5(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(length(x0), z0)) -> c5(A__AND(a__isNatList(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (167) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (169) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) by A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, nil)) -> c12(A__AND(isNat(z0), tt), A__ISNAT(z0)) ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, nil)) -> c12(A__AND(isNat(z0), tt), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, nil)) -> c12(A__AND(isNat(z0), tt), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (171) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (173) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) by A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(z0)) ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (175) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (177) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) by A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (179) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (181) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) by A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1)), A__ISNAT(0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(z0, x1)) -> c12(A__AND(isNat(z0), isNatList(x1)), A__ISNAT(z0)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (183) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (185) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) by A__ISNATLIST(cons(s(x0), nil)) -> c12(A__AND(a__isNat(x0), tt), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(x0), cons(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(x0), take(z0, z1))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(x0), z0)) -> c12(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(s(x0))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (187) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_2, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2 ---------------------------------------- (189) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) by A__ISNATLIST(cons(length(x0), nil)) -> c12(A__AND(a__isNatList(x0), tt), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(x0), cons(z0, z1))) -> c12(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(x0), take(z0, z1))) -> c12(A__AND(a__isNatList(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(x0), z0)) -> c12(A__AND(a__isNatList(x0), isNatList(z0)), A__ISNAT(length(x0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (191) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (193) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, a__isNatList(x1))) by A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(0, cons(z0, z1))) -> c12(A__AND(tt, a__and(a__isNat(z0), a__isNatList(z1)))) A__ISNATLIST(cons(0, take(z0, z1))) -> c12(A__AND(tt, a__and(a__isNat(z0), a__isNatIList(z1)))) A__ISNATLIST(cons(0, z0)) -> c12(A__AND(tt, isNatList(z0))) ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (195) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, cons(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATLIST(cons(z0, z1))) by A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (197) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (199) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, take(z0, z1))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATLIST(take(z0, z1))) by A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__AND(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (201) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (203) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ISNATLIST(cons(x0, z0)) -> c13(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATLIST(z0)) by A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c13(A__AND(isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2 ---------------------------------------- (205) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__isNatIList(z0) -> a__isNatList(z0) a__isNatIList(zeros) -> tt a__isNatIList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatIList(z0) -> isNatIList(z0) a__isNat(0) -> tt a__isNat(s(z0)) -> a__isNat(z0) a__isNat(length(z0)) -> a__isNatList(z0) a__isNat(z0) -> isNat(z0) a__isNatList(nil) -> tt a__isNatList(cons(z0, z1)) -> a__and(a__isNat(z0), a__isNatList(z1)) a__isNatList(take(z0, z1)) -> a__and(a__isNat(z0), a__isNatIList(z1)) a__isNatList(z0) -> isNatList(z0) a__zeros -> cons(0, zeros) a__zeros -> zeros a__take(0, z0) -> a__uTake1(a__isNatIList(z0)) a__take(s(z0), cons(z1, z2)) -> a__uTake2(a__and(a__isNat(z0), a__and(a__isNat(z1), a__isNatIList(z2))), z0, z1, z2) a__take(z0, z1) -> take(z0, z1) a__uTake1(tt) -> nil a__uTake1(z0) -> uTake1(z0) a__uTake2(tt, z0, z1, z2) -> cons(mark(z1), take(z0, z2)) a__uTake2(z0, z1, z2, z3) -> uTake2(z0, z1, z2, z3) a__length(cons(z0, z1)) -> a__uLength(a__and(a__isNat(z0), a__isNatList(z1)), z1) a__length(z0) -> length(z0) a__uLength(tt, z0) -> s(a__length(mark(z0))) a__uLength(z0, z1) -> uLength(z0, z1) mark(and(z0, z1)) -> a__and(mark(z0), mark(z1)) mark(isNatIList(z0)) -> a__isNatIList(z0) mark(isNatList(z0)) -> a__isNatList(z0) mark(isNat(z0)) -> a__isNat(z0) mark(length(z0)) -> a__length(mark(z0)) mark(zeros) -> a__zeros mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(uTake1(z0)) -> a__uTake1(mark(z0)) mark(uTake2(z0, z1, z2, z3)) -> a__uTake2(mark(z0), z1, z2, z3) mark(uLength(z0, z1)) -> a__uLength(mark(z0), z1) mark(tt) -> tt mark(0) -> 0 mark(s(z0)) -> s(mark(z0)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(nil) -> nil Tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNATLIST(x1)) S tuples: A__AND(tt, z0) -> c(MARK(z0)) A__ISNATILIST(z0) -> c2(A__ISNATLIST(z0)) A__ISNAT(s(z0)) -> c8(A__ISNAT(z0)) A__ISNAT(length(z0)) -> c9(A__ISNATLIST(z0)) A__UTAKE2(tt, z0, z1, z2) -> c26(MARK(z1)) MARK(isNatIList(z0)) -> c35(A__ISNATILIST(z0)) MARK(isNatList(z0)) -> c36(A__ISNATLIST(z0)) MARK(isNat(z0)) -> c37(A__ISNAT(z0)) MARK(s(z0)) -> c47(MARK(z0)) MARK(cons(z0, z1)) -> c48(MARK(z0)) A__TAKE(0, z0) -> c19(A__ISNATILIST(z0)) MARK(uTake1(z0)) -> c42(MARK(z0)) A__ISNATILIST(cons(z0, x1)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(z0, x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(z0, x1)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(x0, nil)) -> c13(A__AND(a__isNat(x0), tt)) A__ISNATLIST(cons(z0, x1)) -> c13(A__ISNATLIST(x1)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(x0, zeros)) -> c14(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c14(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATLIST(take(x0, z0)) -> c14(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNAT(x0)) A__ISNATLIST(take(s(z0), x1)) -> c14(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(take(length(z0), x1)) -> c14(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(take(0, x1)) -> c14(A__AND(tt, a__isNatIList(x1))) A__ISNATLIST(take(z0, x1)) -> c14(A__ISNAT(z0)) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(x0, zeros)) -> c15(A__AND(a__isNat(x0), tt), A__ISNATILIST(zeros)) A__ISNATLIST(take(x0, cons(z0, z1))) -> c15(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATLIST(take(x0, z0)) -> c15(A__AND(a__isNat(x0), isNatIList(z0)), A__ISNATILIST(z0)) A__ISNATLIST(take(0, x1)) -> c15(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(s(z0), x1)) -> c15(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(length(z0), x1)) -> c15(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATLIST(take(z0, x1)) -> c15(A__ISNATILIST(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, zeros)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__ISNAT(x0)) A__TAKE(s(x0), cons(x1, z0)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__ISNAT(x0)) A__TAKE(s(x0), cons(0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(s(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(length(z0), x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(x0), cons(z0, x2)) -> c20(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__TAKE(s(length(z0)), cons(x1, x2)) -> c20(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__TAKE(s(z0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(z0)) A__TAKE(s(x0), cons(x1, x2)) -> c20(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__TAKE(s(0), cons(x1, x2)) -> c20(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2)))) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, zeros)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, z0)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNAT(x1)) A__TAKE(s(x0), cons(s(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNAT(s(z0))) A__TAKE(s(x0), cons(length(z0), x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNAT(length(z0))) A__TAKE(s(x0), cons(z0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNAT(z0)) A__TAKE(s(0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c21(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(z0), cons(x1, x2)) -> c21(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(x1, x2)) -> c21(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNAT(x1)) A__TAKE(s(x0), cons(0, x2)) -> c21(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2))) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), x0, x1, x2), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(x1, zeros)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), tt)), x0, x1, zeros), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(zeros))), A__AND(a__isNat(x1), a__isNatIList(zeros)), A__ISNATILIST(zeros)) A__TAKE(s(x0), cons(x1, cons(z0, z1))) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), x0, x1, cons(z0, z1)), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(cons(z0, z1)))), A__AND(a__isNat(x1), a__isNatIList(cons(z0, z1))), A__ISNATILIST(cons(z0, z1))) A__TAKE(s(x0), cons(x1, z0)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), x0, x1, z0), A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(z0))), A__AND(a__isNat(x1), a__isNatIList(z0)), A__ISNATILIST(z0)) A__TAKE(s(x0), cons(0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(tt, a__isNatIList(x2))), x0, 0, x2), A__AND(a__isNat(x0), a__and(a__isNat(0), a__isNatIList(x2))), A__AND(a__isNat(0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(s(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), x0, s(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(s(z0)), a__isNatIList(x2))), A__AND(a__isNat(s(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(length(z0), x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), x0, length(z0), x2), A__AND(a__isNat(x0), a__and(a__isNat(length(z0)), a__isNatIList(x2))), A__AND(a__isNat(length(z0)), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(z0, x2)) -> c22(A__UTAKE2(a__and(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), x0, z0, x2), A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__AND(a__isNat(z0), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(tt, a__and(a__isNat(x1), a__isNatIList(x2))), 0, x1, x2), A__AND(a__isNat(0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(s(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), s(z0), x1, x2), A__AND(a__isNat(s(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(length(z0)), cons(x1, x2)) -> c22(A__UTAKE2(a__and(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), length(z0), x1, x2), A__AND(a__isNat(length(z0)), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(z0), cons(x1, x2)) -> c22(A__UTAKE2(a__and(isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), z0, x1, x2), A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__TAKE(s(x0), cons(x1, x2)) -> c22(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatIList(x2))), A__AND(a__isNat(x1), a__isNatIList(x2)), A__ISNATILIST(x2)) A__LENGTH(cons(x0, cons(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, take(z0, z1))) -> c28(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNAT(x0)) A__LENGTH(cons(x0, z0)) -> c28(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNAT(x0)) A__LENGTH(cons(s(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNAT(s(z0))) A__LENGTH(cons(length(z0), x1)) -> c28(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNAT(length(z0))) A__LENGTH(cons(z0, x1)) -> c28(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(z0)) A__LENGTH(cons(x0, x1)) -> c28(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNAT(x0)) A__LENGTH(cons(0, x1)) -> c28(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1))) A__LENGTH(cons(x0, cons(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), cons(z0, z1)), A__AND(a__isNat(x0), a__isNatList(cons(z0, z1))), A__ISNATLIST(cons(z0, z1))) A__LENGTH(cons(x0, take(z0, z1))) -> c29(A__ULENGTH(a__and(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), take(z0, z1)), A__AND(a__isNat(x0), a__isNatList(take(z0, z1))), A__ISNATLIST(take(z0, z1))) A__LENGTH(cons(x0, z0)) -> c29(A__ULENGTH(a__and(a__isNat(x0), isNatList(z0)), z0), A__AND(a__isNat(x0), a__isNatList(z0)), A__ISNATLIST(z0)) A__LENGTH(cons(0, x1)) -> c29(A__ULENGTH(a__and(tt, a__isNatList(x1)), x1), A__AND(a__isNat(0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(s(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(s(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(length(z0), x1)) -> c29(A__ULENGTH(a__and(a__isNatList(z0), a__isNatList(x1)), x1), A__AND(a__isNat(length(z0)), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(z0, x1)) -> c29(A__ULENGTH(a__and(isNat(z0), a__isNatList(x1)), x1), A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATLIST(x1)) A__LENGTH(cons(x0, x1)) -> c29(A__AND(a__isNat(x0), a__isNatList(x1)), A__ISNATLIST(x1)) A__ULENGTH(tt, and(z0, z1)) -> c31(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) A__ULENGTH(tt, isNatIList(z0)) -> c31(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) A__ULENGTH(tt, isNatList(z0)) -> c31(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) A__ULENGTH(tt, isNat(z0)) -> c31(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) A__ULENGTH(tt, length(z0)) -> c31(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) A__ULENGTH(tt, take(z0, z1)) -> c31(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) A__ULENGTH(tt, uTake1(z0)) -> c31(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) A__ULENGTH(tt, uTake2(z0, z1, z2, z3)) -> c31(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) A__ULENGTH(tt, uLength(z0, z1)) -> c31(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) A__ULENGTH(tt, cons(z0, z1)) -> c31(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__LENGTH(cons(x0, nil)) -> c28(A__AND(a__isNat(x0), a__isNatList(nil)), A__ISNAT(x0)) A__LENGTH(cons(x0, nil)) -> c29(A__AND(a__isNat(x0), a__isNatList(nil))) A__ULENGTH(tt, zeros) -> c31(A__LENGTH(a__zeros)) A__ULENGTH(tt, s(z0)) -> c31(MARK(s(z0))) MARK(and(x0, and(z0, z1))) -> c33(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, isNatIList(z0))) -> c33(A__AND(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(and(x0, isNatList(z0))) -> c33(A__AND(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(and(x0, isNat(z0))) -> c33(A__AND(mark(x0), a__isNat(z0)), MARK(x0)) MARK(and(x0, length(z0))) -> c33(A__AND(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(and(x0, zeros)) -> c33(A__AND(mark(x0), a__zeros), MARK(x0)) MARK(and(x0, take(z0, z1))) -> c33(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(and(x0, uTake1(z0))) -> c33(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c33(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(and(x0, uLength(z0, z1))) -> c33(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(and(x0, tt)) -> c33(A__AND(mark(x0), tt), MARK(x0)) MARK(and(x0, 0)) -> c33(A__AND(mark(x0), 0), MARK(x0)) MARK(and(x0, s(z0))) -> c33(A__AND(mark(x0), s(mark(z0))), MARK(x0)) MARK(and(x0, cons(z0, z1))) -> c33(A__AND(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(and(x0, nil)) -> c33(A__AND(mark(x0), nil), MARK(x0)) MARK(and(and(z0, z1), x1)) -> c33(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(and(isNatIList(z0), x1)) -> c33(A__AND(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(and(isNatList(z0), x1)) -> c33(A__AND(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(and(isNat(z0), x1)) -> c33(A__AND(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(and(length(z0), x1)) -> c33(A__AND(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(and(take(z0, z1), x1)) -> c33(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(and(uTake1(z0), x1)) -> c33(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c33(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(uLength(z0, z1), x1)) -> c33(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(and(zeros, x1)) -> c33(A__AND(a__zeros, mark(x1))) MARK(and(tt, x1)) -> c33(A__AND(tt, mark(x1))) MARK(and(s(z0), x1)) -> c33(MARK(s(z0))) MARK(and(cons(z0, z1), x1)) -> c33(MARK(cons(z0, z1))) MARK(and(x0, and(z0, z1))) -> c34(A__AND(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(and(x0, isNatIList(z0))) -> c34(A__AND(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(and(x0, isNatList(z0))) -> c34(A__AND(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(and(x0, isNat(z0))) -> c34(A__AND(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(and(x0, length(z0))) -> c34(A__AND(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(and(x0, take(z0, z1))) -> c34(A__AND(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(and(x0, uTake1(z0))) -> c34(A__AND(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(and(x0, uTake2(z0, z1, z2, z3))) -> c34(A__AND(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(and(x0, uLength(z0, z1))) -> c34(A__AND(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(and(x0, s(z0))) -> c34(A__AND(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(and(x0, cons(z0, z1))) -> c34(A__AND(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(and(and(z0, z1), x1)) -> c34(A__AND(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(isNatIList(z0), x1)) -> c34(A__AND(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(and(isNatList(z0), x1)) -> c34(A__AND(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(and(isNat(z0), x1)) -> c34(A__AND(a__isNat(z0), mark(x1)), MARK(x1)) MARK(and(length(z0), x1)) -> c34(A__AND(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(and(zeros, x1)) -> c34(A__AND(a__zeros, mark(x1)), MARK(x1)) MARK(and(take(z0, z1), x1)) -> c34(A__AND(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(and(uTake1(z0), x1)) -> c34(A__AND(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(and(uTake2(z0, z1, z2, z3), x1)) -> c34(A__AND(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(and(uLength(z0, z1), x1)) -> c34(A__AND(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(and(tt, x1)) -> c34(A__AND(tt, mark(x1)), MARK(x1)) MARK(and(x0, zeros)) -> c34(A__AND(mark(x0), a__zeros)) MARK(and(x0, tt)) -> c34(A__AND(mark(x0), tt)) MARK(and(x0, 0)) -> c34(A__AND(mark(x0), 0)) MARK(and(x0, nil)) -> c34(A__AND(mark(x0), nil)) MARK(and(0, x1)) -> c34(MARK(x1)) MARK(and(s(z0), x1)) -> c34(MARK(x1)) MARK(and(cons(z0, z1), x1)) -> c34(MARK(x1)) MARK(and(nil, x1)) -> c34(MARK(x1)) MARK(length(and(z0, z1))) -> c38(A__LENGTH(a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(length(isNatIList(z0))) -> c38(A__LENGTH(a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(length(isNatList(z0))) -> c38(A__LENGTH(a__isNatList(z0)), MARK(isNatList(z0))) MARK(length(isNat(z0))) -> c38(A__LENGTH(a__isNat(z0)), MARK(isNat(z0))) MARK(length(length(z0))) -> c38(A__LENGTH(a__length(mark(z0))), MARK(length(z0))) MARK(length(take(z0, z1))) -> c38(A__LENGTH(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(length(uTake1(z0))) -> c38(A__LENGTH(a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(length(uTake2(z0, z1, z2, z3))) -> c38(A__LENGTH(a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(length(uLength(z0, z1))) -> c38(A__LENGTH(a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(length(cons(z0, z1))) -> c38(A__LENGTH(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(length(zeros)) -> c38(A__LENGTH(a__zeros)) MARK(length(s(z0))) -> c38(MARK(s(z0))) MARK(take(x0, and(z0, z1))) -> c40(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, isNatIList(z0))) -> c40(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(x0)) MARK(take(x0, isNatList(z0))) -> c40(A__TAKE(mark(x0), a__isNatList(z0)), MARK(x0)) MARK(take(x0, isNat(z0))) -> c40(A__TAKE(mark(x0), a__isNat(z0)), MARK(x0)) MARK(take(x0, length(z0))) -> c40(A__TAKE(mark(x0), a__length(mark(z0))), MARK(x0)) MARK(take(x0, zeros)) -> c40(A__TAKE(mark(x0), a__zeros), MARK(x0)) MARK(take(x0, take(z0, z1))) -> c40(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(take(x0, uTake1(z0))) -> c40(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(x0)) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c40(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(x0)) MARK(take(x0, uLength(z0, z1))) -> c40(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(x0)) MARK(take(x0, tt)) -> c40(A__TAKE(mark(x0), tt), MARK(x0)) MARK(take(x0, 0)) -> c40(A__TAKE(mark(x0), 0), MARK(x0)) MARK(take(x0, s(z0))) -> c40(A__TAKE(mark(x0), s(mark(z0))), MARK(x0)) MARK(take(x0, cons(z0, z1))) -> c40(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(take(x0, nil)) -> c40(A__TAKE(mark(x0), nil), MARK(x0)) MARK(take(and(z0, z1), x1)) -> c40(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(and(z0, z1))) MARK(take(isNatIList(z0), x1)) -> c40(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(isNatIList(z0))) MARK(take(isNatList(z0), x1)) -> c40(A__TAKE(a__isNatList(z0), mark(x1)), MARK(isNatList(z0))) MARK(take(isNat(z0), x1)) -> c40(A__TAKE(a__isNat(z0), mark(x1)), MARK(isNat(z0))) MARK(take(length(z0), x1)) -> c40(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(length(z0))) MARK(take(take(z0, z1), x1)) -> c40(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(take(uTake1(z0), x1)) -> c40(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(uTake1(z0))) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c40(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(uLength(z0, z1), x1)) -> c40(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(uLength(z0, z1))) MARK(take(s(z0), x1)) -> c40(A__TAKE(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(take(zeros, x1)) -> c40(A__TAKE(a__zeros, mark(x1))) MARK(take(0, x1)) -> c40(A__TAKE(0, mark(x1))) MARK(take(cons(z0, z1), x1)) -> c40(MARK(cons(z0, z1))) MARK(take(x0, and(z0, z1))) -> c41(A__TAKE(mark(x0), a__and(mark(z0), mark(z1))), MARK(and(z0, z1))) MARK(take(x0, isNatIList(z0))) -> c41(A__TAKE(mark(x0), a__isNatIList(z0)), MARK(isNatIList(z0))) MARK(take(x0, isNatList(z0))) -> c41(A__TAKE(mark(x0), a__isNatList(z0)), MARK(isNatList(z0))) MARK(take(x0, isNat(z0))) -> c41(A__TAKE(mark(x0), a__isNat(z0)), MARK(isNat(z0))) MARK(take(x0, length(z0))) -> c41(A__TAKE(mark(x0), a__length(mark(z0))), MARK(length(z0))) MARK(take(x0, take(z0, z1))) -> c41(A__TAKE(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(take(x0, uTake1(z0))) -> c41(A__TAKE(mark(x0), a__uTake1(mark(z0))), MARK(uTake1(z0))) MARK(take(x0, uTake2(z0, z1, z2, z3))) -> c41(A__TAKE(mark(x0), a__uTake2(mark(z0), z1, z2, z3)), MARK(uTake2(z0, z1, z2, z3))) MARK(take(x0, uLength(z0, z1))) -> c41(A__TAKE(mark(x0), a__uLength(mark(z0), z1)), MARK(uLength(z0, z1))) MARK(take(x0, s(z0))) -> c41(A__TAKE(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(take(x0, cons(z0, z1))) -> c41(A__TAKE(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(take(and(z0, z1), x1)) -> c41(A__TAKE(a__and(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(isNatIList(z0), x1)) -> c41(A__TAKE(a__isNatIList(z0), mark(x1)), MARK(x1)) MARK(take(isNatList(z0), x1)) -> c41(A__TAKE(a__isNatList(z0), mark(x1)), MARK(x1)) MARK(take(isNat(z0), x1)) -> c41(A__TAKE(a__isNat(z0), mark(x1)), MARK(x1)) MARK(take(length(z0), x1)) -> c41(A__TAKE(a__length(mark(z0)), mark(x1)), MARK(x1)) MARK(take(zeros, x1)) -> c41(A__TAKE(a__zeros, mark(x1)), MARK(x1)) MARK(take(take(z0, z1), x1)) -> c41(A__TAKE(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(take(uTake1(z0), x1)) -> c41(A__TAKE(a__uTake1(mark(z0)), mark(x1)), MARK(x1)) MARK(take(uTake2(z0, z1, z2, z3), x1)) -> c41(A__TAKE(a__uTake2(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(take(uLength(z0, z1), x1)) -> c41(A__TAKE(a__uLength(mark(z0), z1), mark(x1)), MARK(x1)) MARK(take(0, x1)) -> c41(A__TAKE(0, mark(x1)), MARK(x1)) MARK(take(s(z0), x1)) -> c41(A__TAKE(s(mark(z0)), mark(x1)), MARK(x1)) MARK(take(x0, zeros)) -> c41(A__TAKE(mark(x0), a__zeros)) MARK(take(x0, tt)) -> c41(A__TAKE(mark(x0), tt)) MARK(take(x0, 0)) -> c41(A__TAKE(mark(x0), 0)) MARK(take(x0, nil)) -> c41(A__TAKE(mark(x0), nil)) MARK(take(tt, x1)) -> c41(MARK(x1)) MARK(take(cons(z0, z1), x1)) -> c41(MARK(x1)) MARK(take(nil, x1)) -> c41(MARK(x1)) MARK(uTake2(and(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__and(mark(z0), mark(z1)), x1, x2, x3), MARK(and(z0, z1))) MARK(uTake2(isNatIList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatIList(z0), x1, x2, x3), MARK(isNatIList(z0))) MARK(uTake2(isNatList(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNatList(z0), x1, x2, x3), MARK(isNatList(z0))) MARK(uTake2(isNat(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__isNat(z0), x1, x2, x3), MARK(isNat(z0))) MARK(uTake2(length(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__length(mark(z0)), x1, x2, x3), MARK(length(z0))) MARK(uTake2(take(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(uTake2(uTake1(z0), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake1(mark(z0)), x1, x2, x3), MARK(uTake1(z0))) MARK(uTake2(uTake2(z0, z1, z2, z3), x1, x2, x3)) -> c43(A__UTAKE2(a__uTake2(mark(z0), z1, z2, z3), x1, x2, x3), MARK(uTake2(z0, z1, z2, z3))) MARK(uTake2(uLength(z0, z1), x1, x2, x3)) -> c43(A__UTAKE2(a__uLength(mark(z0), z1), x1, x2, x3), MARK(uLength(z0, z1))) MARK(uTake2(zeros, x1, x2, x3)) -> c43(A__UTAKE2(a__zeros, x1, x2, x3)) MARK(uTake2(tt, x1, x2, x3)) -> c43(A__UTAKE2(tt, x1, x2, x3)) MARK(uTake2(s(z0), x1, x2, x3)) -> c43(MARK(s(z0))) MARK(uTake2(cons(z0, z1), x1, x2, x3)) -> c43(MARK(cons(z0, z1))) MARK(uLength(and(z0, z1), x1)) -> c44(A__ULENGTH(a__and(mark(z0), mark(z1)), x1), MARK(and(z0, z1))) MARK(uLength(isNatIList(z0), x1)) -> c44(A__ULENGTH(a__isNatIList(z0), x1), MARK(isNatIList(z0))) MARK(uLength(isNatList(z0), x1)) -> c44(A__ULENGTH(a__isNatList(z0), x1), MARK(isNatList(z0))) MARK(uLength(isNat(z0), x1)) -> c44(A__ULENGTH(a__isNat(z0), x1), MARK(isNat(z0))) MARK(uLength(length(z0), x1)) -> c44(A__ULENGTH(a__length(mark(z0)), x1), MARK(length(z0))) MARK(uLength(take(z0, z1), x1)) -> c44(A__ULENGTH(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(uLength(uTake1(z0), x1)) -> c44(A__ULENGTH(a__uTake1(mark(z0)), x1), MARK(uTake1(z0))) MARK(uLength(uTake2(z0, z1, z2, z3), x1)) -> c44(A__ULENGTH(a__uTake2(mark(z0), z1, z2, z3), x1), MARK(uTake2(z0, z1, z2, z3))) MARK(uLength(uLength(z0, z1), x1)) -> c44(A__ULENGTH(a__uLength(mark(z0), z1), x1), MARK(uLength(z0, z1))) MARK(uLength(zeros, x1)) -> c44(A__ULENGTH(a__zeros, x1)) MARK(uLength(tt, x1)) -> c44(A__ULENGTH(tt, x1)) MARK(uLength(s(z0), x1)) -> c44(MARK(s(z0))) MARK(uLength(cons(z0, z1), x1)) -> c44(MARK(cons(z0, z1))) A__ISNATILIST(cons(x0, nil)) -> c4(A__AND(a__isNat(x0), tt), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, take(z0, z1))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, z0)) -> c4(A__AND(a__isNat(x0), isNatList(z0)), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, a__isNatList(x1))) A__ISNATILIST(cons(s(z0), zeros)) -> c4(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), zeros)) -> c4(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, zeros)) -> c4(A__AND(tt, tt)) A__ISNATILIST(cons(z0, zeros)) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c4(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(0, x2))) -> c4(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c4(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c4(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c4(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c4(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c4(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATILIST(cons(z0, cons(x1, x2))) -> c4(A__ISNAT(z0)) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNAT(s(z0))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNAT(length(z0))) A__ISNATILIST(cons(0, x1)) -> c4(A__AND(tt, isNatIList(x1))) A__ISNATILIST(cons(s(0), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(s(0))) A__ISNATILIST(cons(s(s(z0)), x1)) -> c4(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNAT(s(s(z0)))) A__ISNATILIST(cons(s(length(z0)), x1)) -> c4(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNAT(s(length(z0)))) A__ISNATILIST(cons(s(z0), x1)) -> c4(A__ISNAT(s(z0))) A__ISNATILIST(cons(length(nil), x1)) -> c4(A__AND(tt, a__isNatIList(x1)), A__ISNAT(length(nil))) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c4(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATILIST(cons(length(z0), x1)) -> c4(A__ISNAT(length(z0))) A__ISNATILIST(cons(x0, nil)) -> c5(A__AND(a__isNat(x0), tt), A__ISNATILIST(nil)) A__ISNATILIST(cons(x0, cons(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(z1))), A__ISNATILIST(cons(z0, z1))) A__ISNATILIST(cons(x0, take(z0, z1))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(z1))), A__ISNATILIST(take(z0, z1))) A__ISNATILIST(cons(x0, z0)) -> c5(A__AND(a__isNat(x0), isNatList(z0)), A__ISNATILIST(z0)) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(0, zeros)) -> c5(A__AND(tt, tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(s(z0), zeros)) -> c5(A__AND(a__isNat(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(length(z0), zeros)) -> c5(A__AND(a__isNatList(z0), tt), A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, zeros)) -> c5(A__ISNATILIST(zeros)) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, zeros))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATILIST(cons(x1, zeros))) A__ISNATILIST(cons(x0, cons(x1, cons(z0, z1)))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATILIST(cons(x1, cons(z0, z1)))) A__ISNATILIST(cons(x0, cons(x1, z0))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATILIST(cons(x1, z0))) A__ISNATILIST(cons(x0, cons(0, x2))) -> c5(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATILIST(cons(0, x2))) A__ISNATILIST(cons(x0, cons(s(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(s(z0), x2))) A__ISNATILIST(cons(x0, cons(length(z0), x2))) -> c5(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATILIST(cons(length(z0), x2))) A__ISNATILIST(cons(x0, cons(z0, x2))) -> c5(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATILIST(cons(z0, x2))) A__ISNATILIST(cons(0, cons(x1, x2))) -> c5(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(s(z0), cons(x1, x2))) -> c5(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(length(z0), cons(x1, x2))) -> c5(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(x0, cons(x1, x2))) -> c5(A__ISNATILIST(cons(x1, x2))) A__ISNATILIST(cons(0, x1)) -> c5(A__AND(tt, isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__AND(a__isNat(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__AND(a__isNatList(z0), isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(0), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(s(z0)), x1)) -> c5(A__AND(a__isNat(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(length(z0)), x1)) -> c5(A__AND(a__isNatList(z0), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(s(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATILIST(cons(length(nil), x1)) -> c5(A__AND(tt, a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(cons(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(take(z0, z1)), x1)) -> c5(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatIList(x1)), A__ISNATILIST(x1)) A__ISNATILIST(cons(length(z0), x1)) -> c5(A__ISNATILIST(x1)) A__ISNATLIST(cons(s(z0), nil)) -> c12(A__AND(a__isNat(z0), tt), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), nil)) -> c12(A__AND(a__isNatList(z0), tt), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, nil)) -> c12(A__AND(tt, tt)) A__ISNATLIST(cons(z0, nil)) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2)))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(x0, take(x1, x2))) -> c12(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(x1, z0))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(0, x2))) -> c12(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c12(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(x0, take(z0, x2))) -> c12(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNAT(x0)) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c12(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c12(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, take(x1, x2))) -> c12(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2)))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c12(A__ISNAT(z0)) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__AND(a__isNat(z0), isNatList(x1)), A__ISNAT(s(z0))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNAT(length(z0))) A__ISNATLIST(cons(0, x1)) -> c12(A__AND(tt, isNatList(x1))) A__ISNATLIST(cons(s(0), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(s(0))) A__ISNATLIST(cons(s(s(z0)), x1)) -> c12(A__AND(a__isNat(z0), a__isNatList(x1)), A__ISNAT(s(s(z0)))) A__ISNATLIST(cons(s(length(z0)), x1)) -> c12(A__AND(a__isNatList(z0), a__isNatList(x1)), A__ISNAT(s(length(z0)))) A__ISNATLIST(cons(s(z0), x1)) -> c12(A__ISNAT(s(z0))) A__ISNATLIST(cons(length(nil), x1)) -> c12(A__AND(tt, a__isNatList(x1)), A__ISNAT(length(nil))) A__ISNATLIST(cons(length(cons(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatList(z1)), a__isNatList(x1)), A__ISNAT(length(cons(z0, z1)))) A__ISNATLIST(cons(length(take(z0, z1)), x1)) -> c12(A__AND(a__and(a__isNat(z0), a__isNatIList(z1)), a__isNatList(x1)), A__ISNAT(length(take(z0, z1)))) A__ISNATLIST(cons(length(z0), x1)) -> c12(A__ISNAT(length(z0))) A__ISNATLIST(cons(x0, cons(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, cons(x1, nil))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(cons(x1, nil))) A__ISNATLIST(cons(x0, cons(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatList(z1)))), A__ISNATLIST(cons(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, take(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(cons(x1, take(z0, z1)))) A__ISNATLIST(cons(x0, cons(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatList(z0))), A__ISNATLIST(cons(x1, z0))) A__ISNATLIST(cons(x0, cons(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatList(x2))), A__ISNATLIST(cons(0, x2))) A__ISNATLIST(cons(x0, cons(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(s(z0), x2))) A__ISNATLIST(cons(x0, cons(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatList(x2))), A__ISNATLIST(cons(length(z0), x2))) A__ISNATLIST(cons(x0, cons(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatList(x2))), A__ISNATLIST(cons(z0, x2))) A__ISNATLIST(cons(0, cons(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(s(z0), cons(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(length(z0), cons(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatList(x2))), A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(z0, cons(x1, x2))) -> c13(A__ISNATLIST(cons(x1, x2))) A__ISNATLIST(cons(x0, take(x1, x2))) -> c13(A__AND(a__isNat(x0), and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__isNatList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(x1, zeros))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), tt)), A__ISNATLIST(take(x1, zeros))) A__ISNATLIST(cons(x0, take(x1, cons(z0, z1)))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), a__and(a__isNat(z0), a__isNatIList(z1)))), A__ISNATLIST(take(x1, cons(z0, z1)))) A__ISNATLIST(cons(x0, take(x1, z0))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(x1), isNatIList(z0))), A__ISNATLIST(take(x1, z0))) A__ISNATLIST(cons(x0, take(0, x2))) -> c13(A__AND(a__isNat(x0), a__and(tt, a__isNatIList(x2))), A__ISNATLIST(take(0, x2))) A__ISNATLIST(cons(x0, take(s(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(s(z0), x2))) A__ISNATLIST(cons(x0, take(length(z0), x2))) -> c13(A__AND(a__isNat(x0), a__and(a__isNatList(z0), a__isNatIList(x2))), A__ISNATLIST(take(length(z0), x2))) A__ISNATLIST(cons(x0, take(z0, x2))) -> c13(A__AND(a__isNat(x0), a__and(isNat(z0), a__isNatIList(x2))), A__ISNATLIST(take(z0, x2))) A__ISNATLIST(cons(0, take(x1, x2))) -> c13(A__AND(tt, a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(s(z0), take(x1, x2))) -> c13(A__AND(a__isNat(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(length(z0), take(x1, x2))) -> c13(A__AND(a__isNatList(z0), a__and(a__isNat(x1), a__isNatIList(x2))), A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(z0, take(x1, x2))) -> c13(A__ISNATLIST(take(x1, x2))) A__ISNATLIST(cons(0, x1)) -> c13(A__AND(tt, isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(s(z0), x1)) -> c13(A__AND(a__isNat(z0), isNatList(x1)), A__ISNATLIST(x1)) A__ISNATLIST(cons(length(z0), x1)) -> c13(A__AND(a__isNatList(z0), isNatList(x1)), A__ISNATLIST(x1)) K tuples:none Defined Rule Symbols: a__and_2, a__isNatIList_1, a__isNat_1, a__isNatList_1, a__zeros, a__take_2, a__uTake1_1, a__uTake2_4, a__length_1, a__uLength_2, mark_1 Defined Pair Symbols: A__AND_2, A__ISNATILIST_1, A__ISNAT_1, A__UTAKE2_4, MARK_1, A__TAKE_2, A__ISNATLIST_1, A__LENGTH_1, A__ULENGTH_2 Compound Symbols: c_1, c2_1, c8_1, c9_1, c26_1, c35_1, c36_1, c37_1, c47_1, c48_1, c19_1, c42_1, c4_1, c5_1, c12_1, c13_2, c13_1, c14_2, c14_1, c15_2, c15_1, c20_3, c20_2, c21_4, c21_3, c22_4, c22_3, c28_3, c28_2, c29_3, c29_2, c31_2, c29_1, c31_1, c33_2, c33_1, c34_2, c34_1, c38_2, c38_1, c40_2, c40_1, c41_2, c41_1, c43_2, c43_1, c44_2, c44_1, c4_2, c5_2, c12_2